我有这样的文件
{ "_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 至少包含输入搜索数组中的一个元素,则应返回完整文档
非常感谢任何帮助
查询响应应返回原始的完整文档,而不是任何修剪过的文档
谢谢 斯里
我已尝试使用 unwind 和 group 来反转展开,但 group 在投影后不会返回完整文档
您不需要聚合管道。
当
$in
中至少有一个元素匹配时,item.skus
运算符将过滤并返回文档。
db.collection.find({
"item.skus": {
$in: [
"c1",
"d3"
]
}
})
参考:使用
$in
运算符匹配数组中的值