我是MongoDB / Mongoose的新手,我正在尝试查找他们的usersInvited
数组包含某个UID
的所有文档。
实施例:
使用UID=123
搜索此集合时,应返回id1
,id2
[
{
"_id": "id1",
"usersInvited": [
{
"UID": "123"
}
]
},
{
"_id": "id2",
"usersInvited": [
{
"UID": "123"
}
]
},
{
"_id": "id3",
"usersInvited": [
{
"UID": "abc"
}
]
}
]
答案 0 :(得分:2)
您可以使用$elemMatch
:
db.myCollection.find({
usersInvited: {
$elemMatch: {
UID: "123"
}
}
})
https://docs.mongodb.org/v3.0/reference/method/db.collection.find/#query-an-array-of-documents
答案 1 :(得分:2)
您可以使用点表示法直接查询UID
数组元素中的usersInvited
字段:
MyModel.find({'usersInvited.UID': '123'}, (err, docs) => {...});
如果数组中的任何元素的UID
值为'123'
,则会包含该文档。
答案 2 :(得分:1)
var query = FriendHittups.find({
usersInvited: {
$elemMatch: {
"UID": "123"
}
}
});
query.exec(function (err, results){
});