javascript - 我可以在返回的文档中使用 mongoose 进行查询吗?
问题描述
我有这样的架构......
var TerritorySchema = new Schema({
user: Schema.Types.ObjectId,
streets: [streets_schema]
)};
var StreetsSchema = new Schema({
name: String,
odd: [block_schema],
even: [block_schema],
tags: [String]
)};
需要能够通过用户 ID 找到区域。但是,我需要在返回的文档内的街道中按名称查找街道。这就是我正在做的...
TerritoryModel.findOne({user: userId})
.then(territory => {
// now i have my territory parent object
// and must find street by name
var streetINeedToFind = null;
for(i = 0; i < territory.streets.length; i++){
var street = territory.streets[i];
if(street.name === streetNameToFind){
streetINeedToFind = street;
break;
}
}
})
// catch blah blah blah ... you know
我是 NoSQL 场景的新手,我只是觉得我应该能够查询我需要的街道,并让数据库为我完成所有搜索。
领土模式实际上比我上面定义的要大得多,我将需要查询嵌套更深的子文档(例如街道内的房子等)。有没有办法在文档中查询或其他更简单的方法来发现子文档,而不是遍历它们?
我阅读了聚合但我不确定这是否是我需要的?我可能错了,也许我正在做的是最佳实践,有人可以告诉我吗?