根据用户数组

时间:2017-08-30 22:56:38

标签: arrays node.js mongodb

基本上我很难理解如何解决这个问题。

我在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(而不是猫鼬)。

1 个答案:

答案 0 :(得分:1)

我相信您正在寻找$in运营商。

// doc.friends = ["Jones","Mark","Mike"]

db.collection.find({ name: { $in: doc.friends }})