当前位置: 首页 > 知识库问答 >
问题:

MongoDb:将两个查找操作合并在一起

贺高杰
2023-03-14

当我搜索包含标题“Apple”的文档时:

数据库。getCollection('items')。查找({title:{$regex:'Apple'}})

标题包含“Apple”的文档按预期返回

当我搜索priceA低于priceB的文档时:

数据库。getCollection('items')。查找({“$where”:“this.priceA

priceA小于priceB的文档按预期返回。

然而,当我试图同时做到这两个方面时:

数据库。getCollection('items')。查找({标题:{$regex:'苹果'}},{“$where”:“this.priceA

只返回_id字段,实际上我的集合中的所有文档和上面的两个过滤器都没有应用:

如何应用两个过滤器?

共有1个答案

翟淇
2023-03-14

您的查询是错误的试试这个。您在投影方法中传递了第二个错误的条件,请查看此以获取更多详细信息

Mongodb find()方法接受3个参数

条件:<代码>{标题:{$regex:'苹果'},“$where”:“this.priceA”

投影:

默认情况下,您不会在投影中指定任何内容,它会返回整个文档,但如果您只想要特定的详细信息,您可以像{name: 1, email: 1}这样传递它

选项:示例是{排序:1,限制:1}

  db.getCollection('items').find({title: {$regex: 'Apple'},"$where":"this.priceA < this.priceB"}, {})
 类似资料:
  • 问题内容: 结合这两个查询的正确语法是什么? 和 我试过了: 但我收到“ UNION和ORDER BY的用法不正确”。 编辑 此外,我希望结果在一行中返回。这样我就可以访问php中的值,例如 根据西蒙的建议,我不应该使用UNION,因为我想返回一行数据 问题答案: 您不能先进入,然后再进入。 编辑 但是你可以 将ORDER BY或LIMIT应用于单个SELECT,将子句放在包围SELECT的括号内

  • 问题内容: 如何合并这两个SQL语句? 两个表中都存在hits10,hits11和hits12。 问题答案: 使用UNION查询-只需在两个查询之间填入“ UNION”即可: 更新 将联合包装在另一个查询中:

  • 问题内容: 如何将这两个JToken合并为一个JToken。听起来应该很简单,但无法解决。 谢谢您的帮助! 到目前为止,这是我尝试过的: 我首先将第一个对象分配给变量,然后尝试将其连接到第二个变量。我有一个循环,可以带回具有三个字段的多个页面。最终目标是抓取每个页面并创建一个包含所有页面的大J。 像这样的东西: 问题答案: 您可以用来将一个合并到另一个。请注意,可以控制数组的合并方式。从Enume

  • 本文向大家介绍MySQL查询将两列合并为一个列?,包括了MySQL查询将两列合并为一个列?的使用技巧和注意事项,需要的朋友参考一下 您可以为此使用功能。在该函数中,它从列中返回第一个NON NULL值。为了理解这个概念,让我们首先创建一个演示表 使用insert命令在表中插入一些记录。查询如下- 现在,您可以使用select语句显示表中的所有记录。查询如下- 以下是输出 这是将两列合并为一个查询的

  • 我有包含以下模式的文档的集合。我想过滤/查找所有包含性别女性的文档并汇总大脑评分的总和。我尝试了下面的语句,它显示了无效的管道错误。 架构:

  • 问题内容: 我要么变老,要么我需要写的查询变得越来越复杂。以下查询将获取与该用户的所有关联。 该表为(,,,); 现在,我还需要通过 独立查询如下所示: 但是,是否可以将这两个查询合并为一个查询?我的逻辑认为应该这样,尽管我不知道如何进行实际的JOIN。 问题答案: 我可能会使用UNION。