Mongodb数组中的匹配项

时间:2018-08-24 18:54:20

标签: mongodb

我正在尝试使用标记数组查询Mongo中的数组。
作为文档的示例,下面是我的数据集

{
   { item: "journal", qty: 25, tags: ["blank", "red"], dim_cm: [ 14, 21 ] },
   { item: "notebook", qty: 50, tags: ["red", "blank"], dim_cm: [ 14, 21 ] },
   { item: "paper", qty: 100, tags: ["red", "blank", "plain"], dim_cm: [ 14, 21 ] },
   { item: "planner", qty: 75, tags: ["blank", "red"], dim_cm: [ 22.85, 30 ] },
   { item: "postcard", qty: 45, tags: ["blue"], dim_cm: [ 10, 15.25 ] }
}

我想用数组["red", "black"]查询标签,该标签将查找标签包含红色或黑色的结果

我可以在标签为红色和黑色的项目中给我结果的地方使用 db.inventory.find( { tags: { $all: ["red", "blank"] } } )

如何进行“或”查询?

2 个答案:

答案 0 :(得分:1)

您需要使用或运算符。这将查找包含黑色或红色标签的文档。

db.collection.find({
$or: [
{
  tags: "red"
},
{
  tags: "black"
}
]
});

在这里进行了测试:https://mongoplayground.net/p/rz_scGtT5z9

答案 1 :(得分:0)

将$ all移动为$ or,它应该可以完成工作。

http://www.querymongo.com/

也许会帮助