我在mongo
集合中的users
上保留了以下实体:
{
"fullname": "Luke Tomson",
"nicknames": [
{
"name": "lukeone",
"created": ISODate("2011-05-18T19:42:56.411Z")
},
{
"name": "magicluke",
"created": ISODate("2012-01-12T19: 42: 56.411Z")
},
{
"name": "superluke",
"created": ISODate("2012-03-27T19: 42: 56.411Z")
}
}
]
}
如何为name
为fullname
的用户获取最后昵称"Luke Tomson"
?更具体地说,我如何在mongo shell中检索在特定字段(在本例中为created
)排序的已排序数组的特定索引(第一个或最后一个)。
由于
答案 0 :(得分:1)
From the documentation,传递给.find
的第二个对象是您想要返回的对象部分的选择。
所以,你想要的基本上是:
db.users.find({"fullname": "Luke Tomson"}, {"nicknames": { $slice: -1 } });
如果你的数据库中有多个“Luke Tomson”,你可能还想要返回_id
,你需要唯一地识别它们。