Mongo 查询以查找任何字段元素与任何查询参数元素匹配的文档

Posted

技术标签:

【中文标题】Mongo 查询以查找任何字段元素与任何查询参数元素匹配的文档【英文标题】:Mongo query to find documents where any of the field's elements match any of the query param elements 【发布时间】:2020-06-01 16:32:17 【问题描述】:

我已经搜索了文档和谷歌。也许我只是需要帮助来制定问题。

我有一个存储值数组的字段。为简单起见,我们将其称为“标签”。我希望能够搜索与我搜索的多个标签中的任何一个匹配的所有文档。换句话说,我想找到所有标记有至少一个(不一定是全部)这些标签的记录。这是一个例子。

文件:

name: "My Thing 1", tags: ["cool", "important", "anothertag"],
name: "My Thing 2", tags: ["cool"],
name: "My Thing 3", tags: ["cool", "important"]
name: "My Thing 4", tags: ["important", "anothertag"]
name: "My Thing 5", tags: []
name: "My Thing 6", tags: ["anothertag"]

查询: ["important", "cool"]

结果: 文档 1-4(不是 5-6)

【问题讨论】:

这能回答你的问题吗? MongoDB select where in array of _id? 您需要按照上面链接中的建议使用$in 运算符,它应该可以帮助您解决这个问题。 我不认为是这样,因为我查询的字段本身就是一个数组,与该示例中的 _id 字段不同。 如果应该可以,请您先试一试并告诉我们,仅供参考,我已经测试过相同的东西并且可以正常工作! @whoami 嗯,它奏效了。我一定写错了我的测试查询,因为我以为我在发布之前尝试过 $in 。感谢您的信息和耐心! 【参考方案1】:

查看 whoami 的评论。 $in 可以解决问题。

【讨论】:

以上是关于Mongo 查询以查找任何字段元素与任何查询参数元素匹配的文档的主要内容,如果未能解决你的问题,请参考以下文章

PHP mongo 查找字段以

查询中的SQL选择字段不影响查询结果

Tridion Taxonomy 查询示例的任何好的来源

查询以从 Spring Data mongo 返回单个字段

rmongodb: $exists 给出空结果

将 MongoDB 查询转换为雪花