2013-06-02 85 views
0

存在的所有用戶名這是在收集coll_users領域MongoDB中選擇其中陣列場ID

_id // ObjectID 
username // type string 
password // type string 
friend_id // array number (ids of friends) 
user_id // Number (my id) 

好吧,我想選擇中存在的friend_id coll_users所有的用戶名,我的意思嗎?

db.coll_users.find()

{ "_id" : ObjectId("51aaba74e747509139beed9b"), "friend_id" : [ 2, 3, 55, 56 ], "password" : "something", "user_id" : 1, "username" : "something" } 

我想要做的是選擇所有用戶中收集的friend_id其中USER_ID存在

問候

回答

0

您應該使用

db.coll_users.find({ "_id" : ObjectId("51aaba74e747509139beed9b"), 
    "friend_id" : { $in : [ 2, 3, 55, 56 ] }, "password" : "something", "user_id" : 1, 
    "username" : "something" }, 
    {"username" : 1 }) 
+0

嗯沒有,因爲我想選擇USER_ID = friend_id – JuanAndres

+0

我想sellect USER_ID = 2,USER_ID = 3,USER_ID = 55的所有usarname和所有用戶USER_ID = 56 – JuanAndres

+0

你的意思是朋友用戶他/她自己? –

1

您可以使用匯總框架:

db.coll_users.aggregate([ 
    {$unwind : "$friend_id"}, 
    {$project: { selfAsFriend: {$eq:["$user_id","$friend_id"]}, user_id:1 } }, 
    {$match : { selfAsFriend : true } } 
]);