gpt4 book ai didi

javascript - 我可以在返回的文档中使用 mongoose 进行查询吗?

转载 作者:可可西里 更新时间:2023-11-01 09:53:43 24 4
gpt4 key购买 nike

我有一个这样的模式...

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 领域的新手,我只是觉得我应该能够查询我需要的街道,并让数据库为我完成所有搜索工作。

territory schema 实际上比我上面定义的要大很多,我将需要查询更深层嵌套的子文档(例如 house within a street 等)。有没有一种方法可以在文档中进行查询,或者有其他更简单的方法来发现子文档,而不是循环遍历它们?

我阅读了有关聚合的内容,但不确定这是否是我需要的?我可能是错的,也许我正在做的是最佳实践,有人可以告诉我方法吗?

最佳答案

如果你已经查询过完整文档,那么你可以直接使用标准的JS数组方法,如find :

var streetINeedToFind = territory.streets.find(s => s.name === streetNameToFind);

但是,如果您只需要文档的特定部分,那么您可以使用来自 this other question 的查询投影技术。这样做。

关于javascript - 我可以在返回的文档中使用 mongoose 进行查询吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53733975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com