簡體   English   中英

Mongoose 填充不工作。 如何解決?

[英]Mongoose populate not working. How to resolve?

我想執行 mongoose 填充,但在下面給出了我的模式時它不起作用。 我該如何解決這個問題? 為什么它不起作用我在 stackoverflow 上使用了很多解決方案,但即使我讀出對我也不起作用的文檔,所有解決方案都不起作用。 現在有人可以幫助我我該如何排序?

授權

const authSchema = mongoose.Schema({
    first_name: {
        type: String
    },
    last_name: {
        type: String
    },
});

const auth = mongoose.model('auth', authSchema);

項目

const teamSchema = mongoose.Schema({
    auth_id: {
        type: mongoose.Schema.Types.ObjectId,
        ref: 'auth'
    }
});

const projectSchema = mongoose.Schema({
    team: {
        type: [ teamSchema ]
    }
});

const project = mongoose.model('project', projectSchema);

詢問:

project.find({}).populate(team.$.auth_id).exec((err, result) => {
    if(err) rej(err);
    res(result);
});

根據文檔,您應該執行以下操作:

project.find({}).populate('team').exec.....project.find({}).populate('auth_id').exec.....

如果要過濾特定的auth_id,則條件應位於查找中而不是填充中,顯然填充將接收要填充的鍵名

https://mongoosejs.com/docs/populate.html

希望有幫助

對我來說,貓鼬 6.* 的版本不起作用。 我待了一個小時來探索。

嘗試將您的貓鼬降級到版本 5.*

命令: yarn remove mongoose yarn add mongoose@5.13.14

我認為你需要創建一個虛擬的。 就像是:

userSchema.virtual('car', {
  ref: 'Car',
  localField: '_id',
  foreignField: 'owner',
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM