博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mongoose 使用populate 需要注意的问题
阅读量:6000 次
发布时间:2019-06-20

本文共 1311 字,大约阅读时间需要 4 分钟。

hot3.png

    So far we've created two Models. Our Person model has it's stories field set to an array of ObjectIds. The refoption is what tells Mongoose which model to use during population, in our case the Story model. All _ids we store here must be document _ids from the Story model. We also declared the Story _creator property as aNumber, the same type as the _id used in the personSchema. It is important to match the type of _id to the type of ref.

    Note: ObjectId, Number, String, and Buffer are valid for use as refs

    今天在使用mongoose的populate来查询ref的文档,一直查不到,花了整整一天时间了,只怪没有看完上面的描述。

   1.  在文档关联使用ref一定要注意,关联的那个model只能匹配_id这个字段,你要是搞个自动生成的啥的一概无效。列举一下吧:

var _User = new Schema({    _id:Number,// 只支持ObjectId,Number,String,Buffer,就这几个引用类型,ref匹配的只有这个_id    name:String,    age:Number});var _Comment = new Schema({    comments:[{        text:String,        created_by:{type:Number,ref:'User'}//这个User是model名称,数据类型要于_id的数据类型一致。    }]})var userModel = mongoose.model('User',_User);var commentsModel = mongoose.model('Comment',_Comment);// 查询commentModel.findOne({ })    .populate('comments.created_by')    .exec(function (err, commets) {            console.log(err,commets);    })

   2.  populate(ref1,ref2) ref1和ref2在源文档的顺序必须一致。

    意思是说在find后找到的文档如果使用ref,必须按照顺序查找引用。

看来文档仔细看是非常重要的。免得浪费精力时间。

转载于:https://my.oschina.net/antianlu/blog/283510

你可能感兴趣的文章
自定义BroadcastReceiver
查看>>
log4j DatePattern格式
查看>>
my paramiko class
查看>>
XML文件解析
查看>>
我的友情链接
查看>>
UIButton如何正确调整imageView及titleLabel的位置
查看>>
mysql主从复制
查看>>
AIX 基础笔记2
查看>>
级联引用完整性约束
查看>>
Linux目录架构详解
查看>>
Add DHCP Reservations in a batch with a Script
查看>>
Service与Android系统实现(1)-- 应用程序里的Service
查看>>
用JavaScript开发的桌面应用
查看>>
curl指令的使用
查看>>
我的友情链接
查看>>
Linux常用命令—egrep及扩展正则表达式
查看>>
为什么使用xfs
查看>>
THINKPHP 结合阿里大于发送短信
查看>>
网站故障排查常用命令
查看>>
Python setdaemon守护进程
查看>>