【问题标题】:populate returns empty query mongoose填充返回空查询猫鼬
【发布时间】:2023-03-21 16:48:01
【问题描述】:

我在猫鼬中有以下架构,包括用户、团队和俱乐部。

const userSchema = new mongoose.Schema({
    name: {
        type: String, 
        required: true
    }, 
    phonenumber: {
        type: String
    }, 
    team: 
        {type: Schema.Types.ObjectId, ref: 'Team'}
    club: 
        {type: Schema.Types.ObjectId, ref: 'Club'},
});



const clubSchema = new mongoose.Schema({
    name: {
        type: String, 
        required: true
    }, 
    clublogo: { type:String }

});


const teamSchema = new mongoose.Schema({
    name: {
        type: String, 
        required: true
    },  
    club: {
        type: Schema.Types.ObjectId, ref: 'Club',
    },
    image: { type:String },

});

我正在尝试使用俱乐部和球队来填充用户表,但我遇到了一些麻烦。 当我运行以下查询时,它工作正常:

    User.find().exec(function(err, users) {{
        if(users) {
            var userMap = {};
            users.forEach(function(user) {
                userMap[user._id] = user;
            });
        
            res.send(userMap);  
            }  else { res.send({});}
        });

但是当我尝试使用填充在用户中获取“团队”数据时,它返回空对象(也尝试不指定模型)

User.find({}).populate([{path:'team',model:'Team'}]).exec(function(err, users) {
            if(users) {
            var userMap = {};
            users.forEach(function(user) {
                userMap[user._id] = user;
            });
        
            res.send(userMap);  
            }  else { res.send({});}
        });

任何想法为什么?

【问题讨论】:

  • 猫鼬版?

标签: mongoose populate


【解决方案1】:

试试这个。它对我有用。

User.find({}).populate(
    'team',
    'name club image'
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2020-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-07-17
    • 2015-08-26
    • 1970-01-01
    相关资源
    最近更新 更多