mongodb 在包含给定数组中所有值的集合中查找记录

r3i60tvu  于 2023-01-12  发布在  Go
关注(0)|答案(1)|浏览(166)

mongodb中是否有一个函数可以在包含给定数组中所有值的集合中查找记录?例如:我有一个叫做channels的集合,这个集合有一个叫做fields的字段。这个字段包含一个对象数组。例如:

{
  _id: "1advs23rfwdfsd23r32r2wf89UJ*ADJ8j10u9u1-2u3",
  fields:[
     {
      "field_name": "first_name"
     },
     {
      "field_name": "last_name"
     },
    ]
 }

是否有一个函数可以查找包含某组字段的所有通道?例如:找到包含字段“名”、“姓”、“州”的所有频道。
我尝试了以下方法,但没有成功

Channel.find({ fields: { $all: [{ "field_name": "state" },{ "field_name": "last_name" },{ "field_name": "first_name" }] } })
qlckcl4x

qlckcl4x1#

使用$in
它用于选择字段值等于数组中任意给定值的文档
$all只有在所有值都与文档中数组字段的值匹配时才有效

Channel.find({ fields: { $in: [{ "field_name": "state" },{ "field_name": "last_name" },{ "field_name": "first_name" }] } })

相关问题