选择性发现在猫鼬

时间:2016-05-27 10:50:43

标签: node.js mongodb mongoose nosql-aggregation

USER SCHEMA

{
    friends: [{
        user_id: {type: mongoose.Schema.Types.ObjectId, required: true, ref: 'User'},
        name: {type: String, required :true},
        age: {type: Number, required: true}
    }],   
    privacy_settings : {
        visibility : {type : Number, enum: [0,1,2]},
        permission : {type : Number, enum : [0,1]},    
    }
}

上面是用户架构的子部分。我想过滤掉用户ID不存在的朋友。现在我得到的是:

查询结果:

  friends: 
   [ {},
     {},
     {},
     {},
     {},
     { user_id: 570f733f0e3fbfb7690b2384 },
     {},
     {},
     { user_id: 570f52b30e3fbfb7690b09f4 },
     {},
     {},
     {},
     { user_id: 570f57490e3fbfb7690b0afe },
     { user_id: 571072576952b11f0320f324 } ],

问题是我不想要这些{},只需要user_id存在的数据。

查询使用

 user.findOne(
     {_id: some_mongoose_id},
     {'friends.userid privacy_settings'}, function(err,result){
          console.log(err,result);
     }
 )

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

试试这个:

FamilyMembers