猫鼬查询数据我有一个猫鼬模型,这是非常简单的:需要填充
aclSchema = mongoose.Schema({
_id: String,
public_read: Boolean,
public_write: Boolean,
});
aclModel = mongoose.model('acl', aclSchema);
引用它另一种模式:
thingSchema = mongoose.Schema({
_id: String,
_acl: { type: String, ref: 'acl' }
});
thingModel = mongoose.model('thing', thingSchema);
我需要能够找到文档(thingModel )其中_acl.public_read为true。我遇到的问题是,因为thing._acl是一个ref,所以直到查询完成后才填充它。
例如:
thingModel.find({"_acl.public_read":true}).populate('_acl').exec(callback);
这是因为,我想不返回任何结果,_acl是一个参考,它不是填充,直到找到返回文件后。
只是一个侧面说明,模式比这个更复杂,并且其他的ref可能是循环的。为了简单起见,我没有包括它们,但基本的想法就在那里。如果真的这么简单,我会使用子文件,它会按预期工作。
有没有更好的方法来做到这一点,所以我得到预期的文件?指定在同一数据库中收集到执行与连接:
正是我所需要的。任何已知的方式在<3.2? – Alex
@Alex答案已更新。 http://stackoverflow.com/questions/19380738/mongoose-nested-query-on-model-by-field-of-its-referenced-model – sidgate