簡體   English   中英

如何在 javascript 中使用 .populate()

[英]how to use .populate() in javascript

我有一個名為

CR

我想做的是像這樣查詢CR:

let cre = await CR.find({myid: "xxxxxx"})

我也有一個名為cla的集合,但我需要根據cre的結果來查詢。 cre 的結果會返回一個 class_id,我需要在其中查詢cla集合以找到_id 在所有這一切結束時,我想理想地合並兩者,我相信你可以通過.populate()做到這一點,然后將它作為一個整體發送到前端。

我試過這個:

 let cre = await cr.find({myid: "xxx"}).populate('loc').populate('desc').populate('dt');

但這不起作用。 我怎樣才能解決這個問題?

這可能是由於模式的原因,但這就是它干凈且易於使用的方式;

 let cre = await cr.find({myid: "xxx"}).populate(['loc','desc','dt']);

首先,您可以在CR集合模式中使用cla集合“_id”。 CR集合的架構中,像這樣引用cla 模型 ID

const creSchema = mongoose.Schema({
    name: String,
    classnId: { type: mongoose.Types.ObjectId, ref: "Cla" }
});

然后你可以像這樣填充,

const cres = await CR.find({}).populate({path:'classnId', select:'columnName'});

希望這能解決您的問題。

注意:在填充時,您可以按空格指定多個列名,如果您在這樣的列名前加上減號 (-columnName),那么當您調用 API 時,該列將不會顯示。

暫無
暫無

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

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