2014-01-11 34 views
0

我有以下结构的文件:找到相同的objectID多个文档

模型:

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

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

DOC 1:

doc: { 
_id: 52cdb245f5116f8567000004 

relations: 
    [{ 
     _id: 52cd9930a22c865a44000006 
    }] 
} 

DOC 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); 
     }) 
} 

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

谢谢!

回答

1

所有你需要的是:

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

的MongoDB会解释这直观地对对象的数组。您不需要运营商$in。 Mongodb知道它何时找到一个文档,其中.relations是一个数组,通过数组查看匹配的子文档._id

+0

我想选择关系id为'52cd9930a22c865a44000006'的所有文档 – Pmpha

相关问题