gpt4 book ai didi

sails.js - Waterline/Sails.js/Mongo 如何使用 AND 条件查询一个文件?

转载 作者:行者123 更新时间:2023-12-01 09:24:53 25 4
gpt4 key购买 nike

我的问题与 Waterline (Sails.js): AND conditions 相同.有一个答案,但它对我不起作用(对提问者也不适用)。

据我所知,水线在其查询语言中没有关键字“and”。
如果我有多个条件要查询,我可以简单地使用:

MyModel.find({fieldA:valueA, filedB:valueB});

但我的问题是如何做:
MyModel.find({fieldA:{
contains:keyword1,
contains:keyword2
}});

因为我无法在 Object/JSON 中设置两个具有相同名称的键,所以我尝试了:
MyModel.find({fieldA:
[
{contains:keyword1},
{contains:keyword2}
]
});


MyModel.find({fieldA:
{contains:[keyword1,keyword2]}
});


MyModel.find()
.where({fieldA:{contains:keyword1})
.where({fieldA:{contains:keyword2}});

但是它们都没有按预期工作:第 1 个和第 2 个返回空集,第 3 个仅包含关键字 2。
看来,当您尝试使用链接的“where”方法将两个“包含”条件添加到同一个字段(fieldA)时,第二个将覆盖第一个。

我正在使用 native mongoDB 的方式来处理这个问题作为一种解决方法,有人知道如何以水线的方式做到这一点吗?或者这是一个应该在github上报告的问题。

PS:对不起,我的英语不好:p

最佳答案

要回答您的问题,请多次 contains不支持。无论是遗漏还是功能请求,都值得商榷。至少对于 SQL 案例,这是一个愚蠢的简单修复(虽然我花了一个多小时才找到它)能够支持以下内容:

orm.collections.user.find({
and: [
{ name: { contains: 'neil' } },
{ name: { contains: 'armstrong' } }
]
});

它只需要一个 case 'and':在以下文件中,它可以工作:

https://github.com/balderdashy/waterline-sequel/blob/master/sequel/lib/criteriaProcessor.js#L120

我怀疑 Mongo 的情况会类似。

关于sails.js - Waterline/Sails.js/Mongo 如何使用 AND 条件查询一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825168/

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