[英]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.