Gui*_*meC 3 mongoose mongodb node.js
这是我的模特:
var LocationSchema = new Schema(
{
events: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Event'
}
]
})
var EventSchema = new Schema(
{
title : String,
location: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Location'
}
})
Run Code Online (Sandbox Code Playgroud)
我想从Location模型查询Event模型中的一个字段.
以下一个不起作用
findOne({events: {$elemMatch: {title: 'test'}}})
Run Code Online (Sandbox Code Playgroud)
我甚至不确定是否可以做到......
使用引用时,可以使用填充对引用的文档运行"子查询",以选择应包含哪些引用.
Location.find({ ... }).populate({
path : 'events',
match : { title : 'test' }
}).exec(...);
Run Code Online (Sandbox Code Playgroud)
哪种方式(查询Location和填充Event,或其他方式)取决于您需要运行的确切查询.在模型上运行"主"查询会产生最少的结果是最高效的.
此方法仍将返回与主查询匹配的所有文档,并且您必须执行一些后处理以筛选没有任何匹配事件引用的文档.
| 归档时间: |
|
| 查看次数: |
4472 次 |
| 最近记录: |