这是集合coll_users
中的字段_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 :(得分:1)
您可以使用聚合框架:
db.coll_users.aggregate( [
{$unwind : "$friend_id"},
{$project: { selfAsFriend: {$eq:["$user_id","$friend_id"]}, user_id:1 } },
{$match : { selfAsFriend : true } }
] );
答案 1 :(得分:0)
你应该使用
db.coll_users.find( { "_id" : ObjectId("51aaba74e747509139beed9b"),
"friend_id" : { $in : [ 2, 3, 55, 56 ] }, "password" : "something", "user_id" : 1,
"username" : "something" },
{"username" : 1 } )