gpt4 book ai didi

node.js - Mongoosejs 虚拟填充

转载 作者:IT老高 更新时间:2023-10-28 23:18:24 25 4
gpt4 key购买 nike

我的项目中有一个圆形模型:

var circleSchema = new Schema({
//circleId: {type: String, unique: true, required: true},
patientID: {type: Schema.Types.ObjectId, ref: "patient"},
circleName: String,
caregivers: [{type: Schema.Types.ObjectId}],
accessLevel: Schema.Types.Mixed
});

circleSchema.virtual('caregiver_details',{
ref: 'caregiver',
localField: 'caregivers',
foreignField: 'userId'
});

看护者模式:

var cargiverSchema = new Schema({
userId: {type: Schema.ObjectId, unique: true}, //objectId of user document
detailId: {type: Schema.ObjectId, ref: "contactDetails"},
facialId: {type: Schema.ObjectId, ref: "facialLibrary"}, //single image will be enough when using AWS rekognition
circleId: [{type: Schema.Types.ObjectId, ref: "circle"}], //multiple circles can be present array of object id
});

示例对象:

{ 
"_id" : ObjectId("58cf4832a96e0e3d9cec6918"),
"patientID" : ObjectId("58fea8ce91f54540c4afa3b4"),
"circleName" : "circle1",
"caregivers" : [
ObjectId("58fea81791f54540c4afa3b3"),
ObjectId("58fea7ca91f54540c4afa3b2")
],
"accessLevel" : {
"location\"" : true,
"notes" : false,
"vitals" : true
}
}

我已经为 mongoosejs 尝试了虚拟填充,但我无法让它工作。这似乎是完全相同的问题:https://github.com/Automattic/mongoose/issues/4585

circle.find({"patientID": req.user._id}).populate('caregivers').exec(function(err, items){
if(err){console.log(err); return next(err) }
res.json(200,items);
});

我只在结果中获取对象 ID。它没有被填充。

最佳答案

找出问题所在。默认情况下,虚拟字段不包含在输出中。在圆形架构中添加此内容后:

circleSchema.virtual('caregiver_details',{
ref: 'caregiver',
localField: 'caregivers',
foreignField: 'userId'
});

circleSchema.set('toObject', { virtuals: true });
circleSchema.set('toJSON', { virtuals: true });

现在可以完美运行了。

关于node.js - Mongoosejs 虚拟填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43882577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com