Mongoose:查询ref文件数组上的字段,
这里是我的模特:
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' } })
我想从位置模型查询事件模型中的一个字段。
以下一个不起作用
findOne({events: {$elemMatch: {title: 'test'}}})
我不确定这是否有可能使…
当您使用引用时,您可以使用填充在引用的文档上运行“子查询”来select应该包含哪些引用。
Location.find({ ... }).populate({ path : 'events', match : { title : 'test' } }).exec(...);
(查询Location
和填充Event
,或其他方式)取决于您需要运行的确切查询。 在模型上运行“主要”查询将会产生最less的结果,这是最高效的。
该方法仍将返回与主查询匹配的所有文档,并且必须执行一些后处理来过滤没有任何匹配的事件引用的文档。