想要在 mongodb 驱动程序类中执行“或”查询

Posted

技术标签:

【中文标题】想要在 mongodb 驱动程序类中执行“或”查询【英文标题】:Want to perform 'OR' query in mongodb driver class 【发布时间】:2019-06-09 10:01:44 【问题描述】:

我的代码执行“AND”查询,但我想执行 OR 查询,但不知道该怎么做。下面是我的“AND”查询代码。 $match 执行“AND”查询。提前谢谢你

<?php

$command = new MongoDB\Driver\Command([
    'aggregate' => 'master_admin',
    'pipeline'  => [
        [
            '$match' =>
                ['full_name' => 'gg', 'username' => 'gg'],
        ],
    ],
    'cursor' => new stdClass,
]);

【问题讨论】:

我不明白你想要什么。你能告诉我们应该如何使用原始的 mongo shell 查询吗? 【参考方案1】:

从官方文档中阅读它会是这样的

https://docs.mongodb.com/manual/reference/operator/query/or/

$command = new MongoDB\Driver\Command([
    'aggregate' => 'master_admin',
    'pipeline'  => [
        [
            '$match' => [
                '$or' => [
                           ['full_name' => ['$eq' => 'gg']], 
                           ['username' => ['$eq' => 'gg']]
                ],
             ],
        ],
    ],
    'cursor' => new stdClass,
]);

我尚未对其进行测试,但应该可以按照这些思路进行操作。在文档的帮助下,您应该能够按照您的意愿进行操作。

【讨论】:

类型:ParseErrorMessage:语法错误,意外 '=>' (T_DOUBLE_ARROW),在 'or' 处期望 ']' 我添加了缺少的括号,你现在可以试试@ManuNarang @ManuNarang 如果答案有帮助,您可以点赞,如果它解决了您的问题,请点击复选标记图标,以便未​​来的访问者知道它解决了您发布的问题

以上是关于想要在 mongodb 驱动程序类中执行“或”查询的主要内容,如果未能解决你的问题,请参考以下文章

mongodb, pymongo 查询

带有承诺的 MongoDB 查询不执行 if 语句(MongoDB node.js 驱动程序)

mongodb 查询的用法

如何在 MongoDB Compass 工具中执行更新($set)查询?

如何在 mongodb 中运行此查询?

在golang中使用mongodb官方驱动用ID查询的一个小坑