【发布时间】:2019-05-26 17:59:33
【问题描述】:
这是我的收藏
{
"_id" : ObjectId("5c225f9a66d39d55c036fa66"),
"name" : "Sherlock",
"mobile" : "999999",
"adress" : [
{
"street" : "221b baker street",
"city" : "london"
},
{
"street" : "ben street",
"city" : "london"
}
],
"tags" : [
"Detective",
"Magician",
"Avenger"
]
}
现在我想获取地址数组中的第一个或第二个值。 为此,我正在使用此命令。
> db.agents.findOne({"name" : "Sherlock"},{"adress" : 1})
但不是给出单个结果,而是给出整个数组,如
{
"_id" : ObjectId("5c225f9a66d39d55c036fa66"),
"adress" : [
{
"street" : "221b baker street",
"city" : "london"
},
{
"street" : "ben street",
"city" : "london"
}
]
}
可以通过比较数组值来完成
db.agents.find({"adress.street": "ben street"}, {_id: 0, 'adress.$': 1});
但我不想仅仅为了打印数组索引而进行比较。我怎样才能得到单一的结果? 任何帮助表示赞赏..
【问题讨论】:
标签: arrays database mongodb mongodb-query aggregation-framework