【问题标题】:Querying more than one matching array element查询多个匹配的数组元素
【发布时间】:2016-04-26 05:05:53
【问题描述】:

我有一个这样的数组:

['member_1','member_2','member_15','member_1','member_1', 'member_2']

我在文档中注意到$in 运算符选择其字段包含一个数组的文档,该数组包含至少一个与指定数组中的值匹配的元素。我有 3 个 member_1 和 2 个 member_2 和 1 个 member_15,所以当我希望它是 6 时,我的输出只有 3。

我应该使用什么运算符,使其不仅仅匹配数组中的一个匹配元素?我将需要

的所有输出
 db.members.find({_id: {$in: ['member_1','member_2','member_15','member_1','member_1', 'member_2'] }})

仅给出 3,但预期为 6

【问题讨论】:

  • 看看$all 运算符。
  • $all 运算符选择字段值为数组字段的文档,这不是。
  • 抱歉,您没有注意到您在查询条件中使用了_id。你能详细说明一下吗?也许您应该添加具有预期输出的示例文档。

标签: mongodb mongodb-query


【解决方案1】:

没有这样的运算符会产生 5 个输出 在数据库中只有三个记录,由 id 的 'member_1'、'member_2'、'member_15' 组成。 如果您仍然希望获得 5 个结果,则必须 使用 mongoose 的异步库多次触发查询 您可以在其中使用异步串行或并行来获得所需的输出。

【讨论】:

  • 这就是我所害怕的。
猜你喜欢
  • 2021-04-16
  • 2013-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-23
  • 2021-03-18
  • 2021-01-15
  • 2018-04-04
相关资源
最近更新 更多