Aar*_*she 3 mongoose mongodb node.js
我有架构
var likedSchema = new Schema({
counter: {type: Number, default: 0, required: true},
user: {type: Array, default: [], ref: 'User'}
});
Run Code Online (Sandbox Code Playgroud)
上面的架构包含与用户和计数器相关联的 ObjectId 的数量。
var mySchema = new Schema({
liked: likedSchema,
name: {type: String, required: true}
});
Run Code Online (Sandbox Code Playgroud)
在上面的架构中,我使用的是 likeSchema
mongoose.model('MyModel', mySchema);
Run Code Online (Sandbox Code Playgroud)
这是定义的两个模式。在likeSchema 中,我有多个用户记录的objectId。
通过使用 mySchema,我想填充这些记录以获取所有用户的详细信息。
liked: {counter: 1, user:[{"name":
"smith","_id":"5a437f06b2a00b28ecf217a9"},{"name":
"john","_id":"5a437f06b2a00b28ecf21192"}];
Run Code Online (Sandbox Code Playgroud)
我需要以上述格式显示数据,以及用户详细信息。任何人都可以帮助我解决问题。
小智 5
在喜欢的Schema中:
user: [{
type: mongoose.Schema.Types.ObjectId,
ref: "User"
}]
Run Code Online (Sandbox Code Playgroud)
然后在查询数据库时,例如使用 findById,对它使用 populate,如下所示:
MySchema.findById({someId}).populate("liked.user").exec(err, foundObject){
//if no error, then you have the object with a list of users in the liked object here.
console.log(foundObject.liked); //obviously in your code, have an if (err) line before this
}
Run Code Online (Sandbox Code Playgroud)