我有一个包含以下对象的集合:

{ 
    "_id" : ObjectId("57f00cf47958af95dca29c0c"), 
    "id" : "...", 
    "threadId" : "...", 
    "ownerEmail" : "...@...", 
    "labelIds" : [
       ...
    ], 
    "snippet" : "...", 
    "historyId" : "35699995", 
    "internalDate" : "1422773000000", 
    "headers" : {
        "from" : "...@...", 
        "subject" : "....", 
        "to" : "...@..."
    }, 
    "contents" : {
        "html" : "...."
    }
}

在访问对象时,我想按iternalDate值对它们进行排序,该值应该是整数,但它是字符串.即使这些是字符串,在获取时是否有方法对它们进行排序?按字母顺序?或者有没有一种方法可以毫不费力地将它们转换为整数?

推荐答案

在我看来,最好的解决方案是首先将其解析为整数.您可以使用如下javascript中的简单脚本,使用mongodb client for node:

db.collection.find({}, {internalDate: 1}).forEach(function(doc) {
    db.collection.update(
       { _id: doc._id },
       { $set: { internalDate: parseInt(doc.internalDate) } }
    )
})

Mongodb相关问答推荐

如何在Mongo Aggregate Query中创建集合的对象ID数组,并在列表中查找另一个集合中的ID

带dropTarget的MongoDB renameCollection命令是原子的吗

DTO 验证适用于 POST,但不适用于 PUT

从 Amazon S3(Next.js、Mongodb、Mongoose)删除图像

将数据从一个集合插入另一个集合的聚合

mongo:在 mongodb 6.0 docker 容器上找不到命令

在mongoose 中按键查找嵌套对象

Mongo查询子文档的多个字段

如何在 mongodb 中设置整数的默认值?

更新 mongoengine 中的嵌入文档列表

MongoDB .NET 未在 upsert 上生成 _id

如何按季度分组日期?

如何在 Mongoose 中更新数组值

MongoDB 嵌套 OR/AND 在哪里?

当前的 URL 字符串解析器已弃用

MongoDB + Node JS + 基于角色的访问控制 (RBAC)

Mongodb:为什么 show dbs 不显示我的数据库?

对于社交网站(使用 Ruby on Rails 开发)来说,MongoDB 会是一个好主意吗?

Hadoop Map/Reduce 与内置 Map/Reduce

Mongoose upsert 不创建默认模式属性