在文档中查找数组中的元素

我是新来的MongoDB / Mongoose,我试图find他们的usersInvited数组包含一个特定的UID所有文件。

例如:searchUID=123这个集合应该返回id1id2

 [ { "_id": "id1", "usersInvited": [ { "UID": "123" } ] }, { "_id": "id2", "usersInvited": [ { "UID": "123" } ] }, { "_id": "id3", "usersInvited": [ { "UID": "abc" } ] } ] 

你可以使用$elemMatch这个:

 db.myCollection.find({ usersInvited: { $elemMatch: { UID: "123" } } }) 

https://docs.mongodb.org/v3.0/reference/method/db.collection.find/#query-an-array-of-documents

您可以使用点符号直接查询usersInvited数组元素中的UID字段:

 MyModel.find({'usersInvited.UID': '123'}, (err, docs) => {...}); 

如果数组中的任何元素具有'123'UID值,则将包括该文档。

 var query = FriendHittups.find({ usersInvited: { $elemMatch: { "UID": "123" } } }); query.exec(function (err, results){ });