【问题标题】:MongoDB get some interval of arrayMongoDB得到一些数组间隔
【发布时间】:2021-04-16 23:00:43
【问题描述】:

我想动态获取数组的特定字段例如:

[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]

在那个数组中,我想先使用14,15,16,然后再使用[11,12,13]

我知道 mongoDB 有一个切片函数,如果我给它-1,它会给出最后一个元素。但是当我得到 切片函数中的间隔只取正值。那我该怎么做呢?

注意:我的数组是动态增长的,我不想每次都知道数组的长度。因为如果我这样做,我必须使用数据库 2 次,我猜它是低效的。

【问题讨论】:

    标签: javascript node.js mongodb mongoose nosql


    【解决方案1】:

    [1,2,3,4,5,6,7,8,9,10,11 (position -6) ,12,13,14 (position -3) ,15,16]

    我认为这样的事情会解决你的问题:

    db.collection.find({},
    {
      yourKey: {
        "$slice": [
          -3,
          3
        ]
      }
    })
    

    这里,从最后一个位置开始,您将起点向后设置三个位置(在 14 值上)并返回三个元素,在这种情况下,它将返回 [14, 15, 16]

    那么,对于[11, 12, 13]

    db.collection.find({},
    {
      yourKey: {
        "$slice": [
          -6,
          3
        ]
      }
    })
    

    【讨论】:

      猜你喜欢
      • 2018-01-10
      • 2023-01-08
      • 1970-01-01
      • 1970-01-01
      • 2015-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-10
      相关资源
      最近更新 更多