2014-01-11 43 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

相關問題