基本上我很难理解如何解决这个问题。
我在mongodb集合中有一个文档,该文档有一个名为friends的字段,这是一个用户名数组。
我想查询数组中的每个用户名,并拥有这些用户文档的数组。我很难解释,如果我把它画出来,那将是有道理的。
mongodb文件:
{
"_id": {
"$oid": "59a20e65f94cb5e924af774e"
},
"name": "Nick",
"friends": ["Jones","Mark","Mike"]
}
现在有了这个friends数组,我想在同一个集合中搜索一个名为Jones,Mark和Mike的对象。当我找到那个对象时,我想将它放入一个数组中。
基本上我希望它能归还这个,(这个例子让我们说Jones,Mark和Mike只有一个朋友,那个朋友就是Nick。
[{
"_id": {
"$oid": "59a20e65f94cb5e924af774e"
},
"name": "Jones",
"friends": ["Nick"]
},
{
"_id": {
"$oid": "59a20e65f94cb5e924af774e"
},
"name": "Mark",
"friends": ["Nick"]
},
{
"_id": {
"$oid": "59a20e65f94cb5e924af774e"
},
"name": "Mike",
"friends": ["Nick"]
}]
^三个对象的数组,都是尼克的朋友。
如果您需要更多解释,请告诉我,我对这种类型的东西非常糟糕。
为了记录,我正在使用节点和基本的mongodb(而不是猫鼬)。
答案 0 :(得分:1)
我相信您正在寻找$in运营商。
// doc.friends = ["Jones","Mark","Mike"]
db.collection.find({ name: { $in: doc.friends }})