MongoDB:如何重新排序过去困惑的文档字段

标签 mongodb mongodb-compass

我的数据库有许多文档,其字段顺序大多是随机的,如 Mongo Compass 中显示的那样。第一个字段始终是 _id,但其余字段可以按任何顺序排列。这使得用肉眼扫描记录变得非常困难。 我读到 Mongo 4.2 不再发生这种由于更新插入而导致的重新排序,并且我已经升级了 - 但问题仍然存在。 有没有办法对我的字段重新排序,以便集合中的每个文档都具有相同的字段顺序 - 首先说 -id,然后是 a-z?

最佳答案

您可以使用 $replaceWith 来执行此操作。 https://mongoplayground.net/p/VBzpabZuJpy

db.YOURCOLLECTION.updateMany({}, [
  {$replaceWith: {
    $mergeObjects: [
      {
        "fieldA": "$fieldA",
        "fieldB": "$fieldB",
        "fieldC": "$fieldC",
        "fieldD": "$fieldD",
        "fieldE": "$fieldE"
      },
      "$$ROOT"
    ]
  }}
])

关于MongoDB:如何重新排序过去困惑的文档字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63138188/

相关文章:

mongodb - 如何将两个数组连接到对象的字段中

ruby-on-rails - 使用 mongomapper 执行服务器 runCommand geoNear

python - 在 Flask 中实现 MongoDB 搜索引擎 API

node.js - Mongoose Find - 排除一个特定文档

node.js - Mongoose 嵌套对象数组中的唯一值

node.js - 如何使用 mongodb 指南针设置索引类型 'text'?

c++ - Mongodb C++11 API errno 干扰

mongodb - regex options/i 等在 MongoDB Compass 中不起作用

c# - MongoDB 组到 C# API

MongoDB Compass 超时