首页 文章

Mongodb c#2.0从内部数组中选择

提问于
浏览
0

我在我的数据库中有这样的文件:

{ 
  _id: ObjectId,
  arr1: [
          {
            _id: 1,
            name: "David"
          },
          {
            _id: 2,
            name: "John"
          },
          ...
         ],
  arr2: [
         {
           _id:100,
            name: "Ron"
         },
         {
           _id:150,
            name: "Chris"
         },
         ...
        ]
}

我想为Mongodb使用2.0 C#驱动程序并选择一个特定的内部元素 .

例如:

getPerson(id, personId)

通过检查arr1和arr2,只返回正确文档中的人(具有给定id的文档) .

如何在服务器上执行此操作(不是首先获取文档并使用C#查询内部数组)?

1 回答

  • 0

    重申:如果这是你寻求的:

    • 鉴于"outer" _id,首先尝试匹配 .

    • 然后,在arr1或arr2中匹配"inner" _id

    那么如果外部_id在 getPerson(id, personId) 中是 id 而内部_id在 getPerson(id, personId) 中是 personId 那么这应该产生满足#1和#2的整体文档:

    c = db.foo.find({
        "_id": outerId,
        $or: [
     {"arr2._id": innerId},
     {"arr1._id": innerId},
              ]});
    

相关问题