Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
354 views
in Technique[技术] by (71.8m points)

mongodb查询对象下的数组是否同时包含几个条件

示例代码

// 数据
[
  {
    name: "a",
    arr: [{
      name: 'A'
    },{
      name: 'B'
    },{
      name: 'C'
    }]
  },
  {
    name: "b",
    arr: [{
      name: 'A'
    },{
      name: 'B'
    }]
  },
  {
    name: "c",
    arr: [{
      name: 'A'
    }]
  }
]

期望:

返回 arr 等于搜索条件,或者包含搜索条件的数据

// 搜索条件
[{ name: 'A' }, { name: 'B'}]

疑问:

$elemMatch 可以搜索数组,但是这种需求怎么进行搜索?

`{ $elemMatch: { $and: [{ name: 'A' }, { name: 'B'}] } }`

使用 $and 修饰符搜索为空


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

已解决,通过 $all 修饰符处理
arr: { $all: [{ name: 'A' }, { name: 'B'}] }


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...