【发布时间】:2014-08-23 13:41:53
【问题描述】:
我要根据引用的文档属性进行查询以查找匹配项。 我已经这样定义了我的架构:
mongoose.model('Route', new mongoose.Schema({
user: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
}
}));
mongoose.model('Match', new mongoose.Schema({
route: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Route'
}
}));
因此,当我在 Match 模型中搜索来自特定用户的路线时,我会执行类似的操作(也尝试不使用 '_id' 属性):
match.find({'route.user._id': '53a821577a24cbb86cd290d0'}, function(err, docs){});
但不幸的是,它没有给我任何结果。我也尝试填充模型:
match.find({'route.user._id': '53a821577a24cbb86cd290d0'}).populate('route').exec(function(err, docs){});
但这并没有什么不同。我知道的解决方案(但不认为它们是最整洁的):
- 查询所有结果并遍历它们,按代码过滤
- 将嵌套文档保存为路由模型中的数组(因此不是引用)
有人建议吗?非常感谢!
相关问题(但未提供可行的解决方案):
【问题讨论】:
标签: node.js mongodb express mongoose documents