Mongodb从数组中的一部分对象查询

这是我试图查询的示例文档

{ "_id":"asdf0-002f-42d6-b111-ade91df09249", "user":[ { "_id":"14bfgdsfg0-3708-46ee-8164-7ee1d029a507", "n":"aaa" }, { "_id":"aasdfa89-5cfe-4861-8a9a-f77428158ca9", "n":"bbb" } ] } 

该文档有2个用户引用,并包含用户_id和其他misc信息。 我有2个用户ID,并试图通过只有用户ID获取此文件。 我也不知道2个ID的顺序。 这是一个可能的查询?

 col.findOne({ user:{ $all:[ { _id:"14bfgdsfg0-3708-46ee-8164-7ee1d029a507" }, { _id:"aasdfa89-5cfe-4861-8a9a-f77428158ca9" } ] } }) 

^^我尝试过的东西不起作用。

你接近你的所有尝试。

 col.findOne({ "user._id":{ $all : [ "14bfgdsfg0-3708-46ee-8164-7ee1d029a507", "aasdfa89-5cfe-4861-8a9a-f77428158ca9" ] } } 

您可以通过包装引号来查询子文档。 从那里$所有的工作对你正在寻找的价值观。

Mongodbfind一个满足条件的所有子文档的文档显示了这种types的查询的变体。

ElemMatch应该做的伎俩。

col.findOne({user:{$ elemMatch:{“_ id”:“14bfgdsfg0-3708-46ee-8164-7ee1d029a507”,“_id”:“aasdfa89-5cfe-4861-8a9a-f77428158ca9”}}})