javascript - 如何更新以对数组元素进行排序?

标签 javascript node.js mongodb mongoose

数据库示例...

 { "code" : "2156",
    "trades" : [ 
        {
            "close" : 78000,
            "date" : "2017.11.08"
        }, 
        {
            "close" : 25300,
            "date" : "2017.08.07"
        }, 
        {
            "close" : 74900,
            "date" : "2017.11.07"
        }
    ] 
 },
  { "code" : "2158",
    "trades" : [ 
        {
            "close" : 79000,
            "date" : "2017.11.08"
        }, 
        {
            "close" : 24300,
            "date" : "2017.08.07"
        }, 
        {
            "close" : 71900,
            "date" : "2017.11.07"
        }
    ] 
 }

以上是我现有的mongodb数据样本。我想要做的是按 date asctrades 中安排对象。所以应该这样安排

    "trades" : [ 
        {
            "close" : 24300,
            "date" : "2017.08.07"

        }, 
        {
            "close" : 71900,
            "date" : "2017.11.07"
        }, 
        {
            "close" : 79000,
            "date" : "2017.11.08"
        }
    ] 

有什么办法吗?我正在使用 Node.js 和 Mongoose。 我已经查看了这篇文章:

how to sort array inside collection record in mongoDB

但它看起来并没有对 db 本身进行排序,它只是根据特定条件查询 db,对吧?有没有办法订购数据库本身?

最佳答案

您可以 $sort用于对数组中的元素进行排序的修饰符。 multi:true 将更新应用于多个文档。

有点像

db.collection_name.update( { }, { $push: { trades: { $each: [ ], $sort:{date:1}} } }, {multi: true } )

关于javascript - 如何更新以对数组元素进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48054825/

相关文章:

javascript - 在带有 createTextNode 的段落上使用 <span>

javascript - Node.js - 使用 Mongoose 创建关系

node.js - 我的 POST API 路由执行延迟?

java - MongoDB:使用 Java 驱动程序按 ObjectId 查询

javascript - 如何使用同名的 "data-target"属性创建多个弹出窗口

javascript - jQuery Javascript 大规模应用程序开发

node.js - 命令行无法识别 Node-sass

javascript - Node 在类异步方法中设置 this.var

mongodb - db.collection.find() 查询中的不同结果

mongodb - 如何使用 PhantomJS 连接到 MongoDB