Mongodb的populate的用法
- 在上述的例子中,创建了三个 Models:User,Post,Comment。
- User 的属性 posts,对应是一个 ObjectId 的数组。ref表示关联Post(注意: 被关联的model的 type 必须是ObjectId, Number, String, 和 Buffer 才有效)。
- Post的属性 poster 和 comments 分别关联User和Comment。
- Comment的属性 post 和 commenter 分别关联Post和User。
- 三个 Models 的关系:一个 user–has many–>post。一个 post–has one–>user,has many–>comment。一个 comment–has one–>post 和 user。
|
|
Query#populate的语法
语法:
Query.populate(path, [select], [model], [match], [options])参数:
path
类型:String或Object。
String类型的时, 指定要填充的关联字段,要填充多个关联字段可以以空格分隔。
Object类型的时,就是把 populate 的参数封装到一个对象里。当然也可以是个数组。下面的例子中将会实现。select
类型:Object或String,可选,指定填充 document 中的哪些字段。
Object类型的时,格式如:{name: 1, _id: 0},为0表示不填充,为1时表示填充。
String类型的时,格式如:”name -_id”,用空格分隔字段,在字段名前加上-表示不填充。详细语法介绍query-selectmodel
类型:Model,可选,指定关联字段的 model,如果没有指定就会使用Schema的ref。match
类型:Object,可选,指定附加的查询条件。options
类型:Object,可选,指定附加的其他查询选项,如排序以及条数限制等等。
|
|