2014-02-12 67 views
1

我正在使用Node.js和Mongoose模塊,並遇到了問題。node.js,mongoose如何在多個ID中查找對象數組

我有一個架構至極樣機看起來像這樣

_id: '', 
foo: '', 
bar: '', 
fb: [{ 
    id: '' 
}] 

如何找到在集合中的所有對象進行匹配FB [0] .ID加傳遞ID數組?

這個我試過(找到下面的查詢()方法):

{'fb[0].id': {$in: friendsIDList}} 

而且這樣的:

{'fb': {$in: [{id: friendsIDList}]} } 

即使這樣

{'fb': {$in: {$in: friendsIDList}}} 

更清晰,我有一個用戶對象,它包含fb參數中的FB數據,但它是一個只包含一個數據對象的數組。 現在我收到一個朋友ID列表,並希望查詢所有的用戶朋友。

對不起,我的英語btw。

回答

1

MongoDB有一個叫dot notation的東西,所以你可以用'foo.0.id': 'id'查詢。

測試如下:

> db.users.insert({foo: 'foo', bar: 'bar', fb: [ { id: '456' } ]}) 
> db.users.find({'fb.0.id': '456'}).pretty() 
{ 
    "_id" : ObjectId("52fb695e403fb143985459dc"), 
    "foo" : "foo", 
    "bar" : "bar", 
    "fb" : [ 
     { 
      "id" : "456" 
     } 
    ] 
} 
+0

什麼的''fb.0.id'的0'意義? – SharpCoder

+0

fb屬性數組中第一個對象的id屬性。就像在大多數編程語言中做fb [0] .id = 456一樣 –

相關問題