在Mongoose中,子单据ID查找上级单据可以通过使用populate方法来实现。populate方法可以将指定字段的引用对象从其他集合中获取并填充到查询结果中。
具体步骤如下:
const mongoose = require('mongoose');
// 子单据模型
const childBillSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: String,
parentBill: { type: mongoose.Schema.Types.ObjectId, ref: 'ParentBill' }
});
const ChildBill = mongoose.model('ChildBill', childBillSchema);
// 上级单据模型
const parentBillSchema = new mongoose.Schema({
_id: mongoose.Schema.Types.ObjectId,
name: String
});
const ParentBill = mongoose.model('ParentBill', parentBillSchema);
ChildBill.findById(childBillId)
.populate('parentBill')
.exec((err, childBill) => {
if (err) {
console.error(err);
return;
}
console.log(childBill.parentBill);
});
在上述代码中,childBillId是要查询的子单据ID。populate('parentBill')表示填充parentBill字段,将其从ParentBill集合中获取。执行exec方法后,可以通过childBill.parentBill访问到上级单据对象。
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云