查找().populate()与mongoose中的查找().find()比较
我想知道,在猫鼬ORM中使用populate和find方法有什么区别 假设我有两个模型。1.用户和2.发布查找().populate()与mongoose中的查找().find()比较,mongoose,mongoose-schema,mongoose-populate,Mongoose,Mongoose Schema,Mongoose Populate,我想知道,在猫鼬ORM中使用populate和find方法有什么区别 假设我有两个模型。1.用户和2.发布 mongoose.model('User', mongoose.Schema({ user : {type: String}, posts : [type: mongoose.SchemaTypes.ObjectId, ref: 'Post'}] })) 以及后模式 mongoose.model('Post', mongoose.Schema({ user : {type: mongoo
mongoose.model('User', mongoose.Schema({
user : {type: String},
posts : [type: mongoose.SchemaTypes.ObjectId, ref: 'Post'}]
}))
以及后模式
mongoose.model('Post', mongoose.Schema({
user : {type: mongoose.SchemaTypes.ObjectId, ref: 'User'},
title : {type: String},
body : {type:String}
}))
我想由用户生成所有帖子。
我可以这样做:
User.findById({_id:req._id}).then(currentUser => Post.find({user._id: currentUser}) ........
或:
哪一个是正确的方法?这两者的区别是什么 Mongoose populate并不神奇,因为它仍然是客户端查找而不是$lookup,后者是服务器端查找 对于单个findById查询,通过比较这两条语句,您可能看不到任何好处 当您使用诸如find().populate()之类的查询时,您可以看到.populate的优点,其中返回了多条记录
User.findById({_id:req._id}).populate('posts')