【问题标题】:Is there a way to make sure MongoDB always arranges objects in an an array in a particular order?有没有办法确保 MongoDB 总是以特定的顺序排列数组中的对象?
【发布时间】:2020-06-21 16:34:42
【问题描述】:

我正在通过 mongoose 使用 MongoDB。有没有办法确保 MongoDB 始终以特定顺序将对象排列在数组中?

考虑下面的架构代码:

{
    _id: '1234',
    arrayOfObjects:[{
        data:'some data'
        createdAt:'some date'      
    }]
}

我想创建一个物化视图,以便可以按随机顺序插入对象,而不是按照创建日期的顺序。有没有办法确保 MongoDB 总是以特定的顺序排列数组中的对象?还是我查询时必须这样做?

【问题讨论】:

    标签: mongodb sorting mongoose mongoose-schema


    【解决方案1】:

    是的,您可以使用 $sort 运算符:read more here

    一个简单的例子:

    架构示例:

    {
      "_id": 1,
      "arrayField": [
        { "id" : 1, "someNumber" : 6 },
        { "id" : 2, "someNumber" : 9 }
      ]
    }
    

    查询样本;将arrayFieldsomeNumber 升序排序如下:

    update.(
       { _id: 1 },
       {
         $push: {
           arrayField: {
             $each: [ { id: 3, someNumber: 8 }, { id: 4, someNumber: 7 }, { id: 5, someNumber: 6 } ],
             $sort: { someNumber: 1 }
           }
         }
       }
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-23
      • 2021-12-18
      • 2013-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多