查询节点mongodb中的嵌套对象数组

时间:2019-10-29 09:30:38

标签: node.js mongodb mean-stack

我是Node + Mongo的新手。我在mongoDB中具有以下结构的数据:

     var data = [{
    id:1,
    createdBy:"test",
    sharedTo:["john","shekar"]
    },
    {
    id:2,
    createdBy:"steve",
    sharedTo:["test","shekar"]
    },
{
    id:3,
    createdBy:"mark",
    sharedTo:["steve","test"]
    },
{
    id:4,
    createdBy:"akuni",
    sharedTo:["john","shekar","mark"]
    },
{
    id:5,
    createdBy:"test",
    sharedTo:["mark","shekar"]
    },
{
    id:6,
    createdBy:"mark",
    sharedTo:["test","akuni"]
    }]

我想查询它以获取用户“ test”创建的所有记录,并将这些记录共享给“ test”。我该怎么办?

预期结果:

[{
    id:1,
    createdBy:"test",
    sharedTo:["john","shekar"]
    },

{
    id:5,
    createdBy:"test",
    sharedTo:["mark","shekar"]
    },
{
    id:6,
    createdBy:"mark",
    sharedTo:["test","akuni"]
    }]

我尝试过类似的东西

var user = "test";
    data.find({createdBy:user,sharedTo:{$elemMatch:[user]}},function(err, resp){

    });

但是它返回空

1 个答案:

答案 0 :(得分:1)

使用mongodb的$or查询运算符

db.collection.find({
  $or: [
    { createdBy: "test" },
    { sharedTo: "test" }
  ]
})