gpt4 book ai didi

node.js - Mongoose:在查询条件中的架构字段上应用函数

转载 作者:太空宇宙 更新时间:2023-11-03 23:45:31 25 4
gpt4 key购买 nike

在 MySQL 中,可以在 where 子句中的字段上应用 native 函数。例如。

SELECT * FROM t WHERE DATE(the_date) < '2012-11-19';

SELECT * FROM t WHERE a+b < 20;

现在,是否可以在 Mongoose 查询的条件字段上使用函数?假设我正在查询这样的内容:

tSchema.find({a+b: {$lt: 20}}, callback);

最佳答案

不,您无法使用 find 创建计算列,因此您必须使用 aggregate为此,它更灵活,但也更慢。

像这样:

tSchema.aggregate([

// Include the a, b, and a+b fields from each doc
{ $project: {
a: 1,
b: 1,
sum: {$add: ['$a', '$b']}}},

// Filter the docs to just those where sum < 20
{ $match: {sum: {$lt: 20}}}

], function(err, result) {
console.log(result);
});

为了完整起见,我应该指出,您可以使用 find$where 过滤器来完成此操作,但其性能很糟糕,因此不推荐。就像这样:

tSchema.find({$where: 'this.a + this.b < 20'}, function(err, result) {
console.log(result);
});

关于node.js - Mongoose:在查询条件中的架构字段上应用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13455212/

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