Mongodb找到比较数组元素到数组字段

Posted

技术标签:

【中文标题】Mongodb找到比较数组元素到数组字段【英文标题】:Mongodb find comparing array element to array field 【发布时间】:2021-05-19 14:33:57 【问题描述】:

我想知道如何比较 Mongoose 中的(嵌套)对象数组。

考虑到下面的代码,我想在 pskills 属性匹配时得到结果。谁能帮我解决这个问题?

  ao = await Ao.find(
//req.body.pSkills is arraay //['nodejs', 'angular'..]
                pSkills:  $eq: req.body.pSkills 
          );

【问题讨论】:

您到底想找到什么?所有具有与req.body.pSkilles 完全相同的 pSkills 的文档?所有包含req.body.pSkilles 中的 pSkills 的文档?所有具有至少一项来自req.bodypSkilles 的 pSkill 的文档。提供一个场景通常很有帮助。 完全像这个示例文档:name: 'test', pSkills: 'Angular','nodejs,'..] 我用 pSkils = [nodejs] 搜索文档 【参考方案1】:

您必须使用$in 来搜索数组。

试试这个查询:

ao = await Ao.find(
  "pSkills": 
    "$in": req.body.pSkills
  
)

查看this 示例

【讨论】:

不客气。此外,如果问题已解决,请将答案标记为已接受。

以上是关于Mongodb找到比较数组元素到数组字段的主要内容,如果未能解决你的问题,请参考以下文章

如何修改MONGODB字段的数组,不用整个字段修改

用PHP查询mongo数据时,条件是某个字段(A为数组)不为空,但是有的记录中并没有字段A,这个条件怎么写?

在 Mongo 集合中更新数组中的一条记录

MongoDB索引

防止插入Mongo集合的数组中的空值

在Java中查询具有完全匹配字段MongoDB的数组元素