gpt4 book ai didi

node.js - 如何在 mongoose 中使用查询修饰符?

转载 作者:太空宇宙 更新时间:2023-11-04 02:38:30 24 4
gpt4 key购买 nike

我不知道如何在文档中将 $min/$max 等查询修饰符与 mongoose 一起使用。有没有办法做到这一点?

最佳答案

在使用 Mongoose 时,我不知道有什么自然的方法可以做到这一点,因为 Mongoose 代表您执行许多操作,以方便操作,这些操作通常可能与其中一些操作发生冲突。

我没有尝试过,但你也许可以这样做:

Model.find( { $query: { <query> },
$max: { myField: 100 }, $min: { myField: 10 } }, function(err, models) {
// do something with results
});

当使用 $query 语法和修饰符时,您不能使用其他东西,如 mongoose 的 sort 等,因为它们必须在 $query 定义中显式指定。

或者,您可以使用一个或多个查询运算符,例如 $gte$min$max 作为查询修饰符,都强制 MongoDb 使用其他运算符不使用的索引。

Model.find().gte("myField", 10).exec(function(err, models) {})

正如评论中所指出的,您还可以使用 setOptions ( documentation )。但是,它仍然具有相同的限制,您无法使用它和许多其他选项。

无论如何,我建议您应该考虑使用其他查询运算符,例如 $gte 等,并让数据库查询引擎根据查询和可用索引做出明智的选择,而不是通过 $max/$min 强制使用索引。通过使用其中任何一个,即使有更好的索引选择,也会使用它们。

关于node.js - 如何在 mongoose 中使用查询修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19655033/

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