Mongo 在嵌套查询中搜索

问题描述 投票:0回答:1

我有这样的文件

{ "_id" : 1, "item" : { "code": "ABC1", skus: [ "c1", "c2", "c3"] }
{ "_id" : 2, "item" : { "code": "ABC2", skus: [ "c1", "c2", "d3"] }
{ "_id" : 3, "item" : { "code": "ABC3", skus: [ "d1", "d2", "c3"] }

搜索与输入 sku 数组匹配的所有文档

["c1", "d3"] 
{ "_id" : 1, "item" : { "code": "ABC1", skus: [ "c1", "c2", "c3"] }
{ "_id" : 2, "item" : { "code": "ABC2", skus: [ "c1", "c2", "d3"] }

要求是如果 sku 至少包含输入搜索数组中的一个元素,则应返回完整文档

非常感谢任何帮助

查询响应应返回原始的完整文档,而不是任何修剪过的文档

谢谢 斯里

我已尝试使用 unwindgroup 来反转展开,但 group 在投影后不会返回完整文档

mongodb
1个回答
0
投票

您不需要聚合管道。

$in
中至少有一个元素匹配时,
item.skus
运算符将过滤并返回文档。

db.collection.find({
  "item.skus": {
    $in: [
      "c1",
      "d3"
    ]
  }
})

演示@Mongo Playground

参考:使用

$in
运算符匹配数组中的值

© www.soinside.com 2019 - 2024. All rights reserved.