【问题标题】:find multiple documents by the same objectID通过相同的 objectID 查找多个文档
【发布时间】:2014-01-12 11:16:55
【问题描述】:

我有一个结构如下的文档:

型号:

var relationID = Schema({
    _id: {type: Schema.Types.ObjectId}
});

    var schemaName = Schema({   
    relations:[relationID],   
    meta: {},    
    modificationDate: {type: Date, "default": Date.now}});

文档 1:

doc:  { 
_id: 52cdb245f5116f8567000004

relations: 
   [{ 
      _id: 52cd9930a22c865a44000006
   }]
} 

文档 2:

doc:  { 
    _id: 52d01bf303aaa8f473000005

    relations: 
       [{ 
          _id: 52cd9930a22c865a44000006
       }]
} 

两个文档具有相同的关系 ID。我想选择它们:

exports.detail = function (req, res) {
    var condition, fields, options;
    condition = {relationsID: { $in: [ "52cd9930a22c865a44000006"]  } }

        fields = {},
        options = {'createdAt': -1};

    transactions
        .find(condition, fields)
        .exec(function (err, doc){
            var retObj = {
                meta: {"action": "list",'timestamp': new Date()},
                doc: doc[0],
                err: err
            };
            return res.send(retObj);
        })
}

它不起作用。如何选择两个文档?

谢谢!

【问题讨论】:

    标签: node.js mongodb angularjs mongoose


    【解决方案1】:

    你只需要:

    var condition = {'relations._id': '52cd9930a22c865a44000006'};
    

    Mongodb 将为对象数组直观地解释这一点。您不需要 $in 运算符。 Mongodb 知道何时找到.relations 为数组的文档,然后在数组中查找与._id 匹配的子文档。

    【讨论】:

    • 我想选择关系 id: '52cd9930a22c865a44000006' 的所有文档
    猜你喜欢
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 2021-01-06
    • 2015-06-08
    • 1970-01-01
    • 2011-09-27
    • 2015-01-14
    • 1970-01-01
    相关资源
    最近更新 更多