【问题标题】:Comparing elements at a given index in two arrays in mongodb比较mongodb中两个数组中给定索引处的元素
【发布时间】:2020-04-28 03:00:25
【问题描述】:

假设我有一个 mongo 表单集合

test_collection:(
{
  _id:"test_id",
   "name":"abc",
   "array_1":[1,5,3,4],
   "array_2":[3,6,4,5]
},
{
   _id:"test_id_1",
   "name":"efg",
   "array_1":[5,6,7,8],
   "array_2":[8,9,10,11]
},
{
   _id:"test_id_2",
   "name":"mno",
   "array_1":[8,6,7,9],
   "array_2":[1,2,10,11]
})

我应该如何编写一个查询,它只给我集合中的那些对象,其中 array_1 中索引 0 处的元素值小于 array_2 中索引 0 处元素的值?例如,在这种情况下,查询应返回 ID 为 test_idtest_id_1 的对象。

【问题讨论】:

    标签: arrays mongodb indexing


    【解决方案1】:

    您可以使用 $expr 运算符来做到这一点:

    db.collection.find({
      $expr: {
        "$lt": [
          {$arrayElemAt: ["$array_1",0]},
          {$arrayElemAt: ["$array_2",0]}
        ]
      }
    })
    

    Playground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-16
      • 1970-01-01
      • 2016-06-19
      • 2016-01-11
      • 2020-08-08
      • 2021-08-27
      相关资源
      最近更新 更多