猫鼬的人口

时间:2016-04-09 20:50:28

标签: javascript node.js mongodb mongoose

我有这个猫鼬模式:

var wishListSchema = new Schema({
    items: [{ type: Schema.Types.ObjectId, ref: 'Items' }]
});
var wishList = mongoose.model('WishList', wishListSchema, 'WishList');

我有另一个猫鼬模式:

var itemSchema = new Schema({
    "name":String,
    "description":String
});
var item= mongoose.model('Items', itemSchema, 'Items');

和此:

var UserSchema = new Schema({
    "name":String, 
    "surname":String, 
    "wishList": { type: Schema.Types.ObjectId, ref: 'WishList' }
});

但是当我从数据库中获取用户并尝试填充wishList和项目时,项目的结果为空

User.findOne({name:name})
    .populate({
        path:"wishList",
        populate: {
            path:"items"
        }
    })
    .exec(function(err, userDb){
        console.log(userDb);
    });  

结果是:

{
    _id: "56f85549334635c01b19bc37",
    name: "AAA",
    surname: "BBB"
    wishList: {
        _id: "56f85549334635c01b19bc39",
        __v: 0,
        items: [ ]
    }
}

1 个答案:

答案 0 :(得分:-2)

试试这个:

User.findOne({name:name})
.populate({
    path:"wishList",
    select: "items"
})
.exec(function(err, userDb){
    console.log(userDb);
});