【问题标题】:Mongodb Compass export data with sortMongodb Compass 用排序导出数据
【发布时间】:2019-01-22 22:47:06
【问题描述】:

我可以在指南针中对数据进行排序,但我的问题是当我导出时,我没有对其进行排序,并且我找不到在导出数据时可以在哪里应用排序?

正如您在此处看到的,我使用{name: 'SelectedProduct'} 进行过滤,并使用{name: 1} 进行排序:

但是在与上图相同的过滤器和排序的导出集合对话框中,我看到了:

我似乎找不到如何对导出的数据应用排序。

【问题讨论】:

  • 遇到同样的问题,不知道如何解决。

标签: mongodb mongodb-compass


【解决方案1】:

即使我也面临类似的问题。如果您在第一个屏幕的查询窗口中看到您只有 1 个文档,而在导出数据窗口中它显示 984 条记录。这是一个需要由 MongoDB Compass 修复的错误。导出的行为类似于“整个完整集合”并且写入的查询没有影响。

【讨论】:

  • 我还在指南针的查询预览中看到了一个错误(按下导出按钮后)我的查询显示错误(而不是 ObjectId("fdfdffdgdf4435345") 我看到 {id:new Buffer( '_x\ufffdC#aO\u0000 UO\ufffd')}}
【解决方案2】:

我找到了解决罗盘错误的方法(绕道): 步骤:

  1. 转到聚合
  2. 选择:$match
  3. 在匹配项中复制您的查询
  4. 另存为新视图(实际上是用您的结果创建一个新集合)- 保存按钮右侧有一个向下箭头
  5. 现在转到这个新集合并将其导出

此外,如果您想通过 shell 执行相同的过程,请执行以下命令: db.videos.aggregate([{$match:{hasError: {$ne: true},videos:{$gt:[]},businessAuth: {$in: [ObjectId('5f78a94323614f0020554f96')]}}},{ $out : "重" }])

解释:

  1. db.videos 为集合名称(videos 为集合名称)
  2. aggregate 是一个命令,它创建具有多个命令的管道,例如查询 ($match) 并输出结果 ($out) - 它需要命令数组)
  3. $match 类似于 find()
  4. $out 是如何处理结果的 - 所以我要求将查询找到的所有文档插入到名为“heavy”的新集合(或存在一个)中

【讨论】:

    【解决方案3】:

    我也需要那个。

    1. 转到聚合并选择 $sort。

    2. 过去你的排序:

      {
        name: 1
      }
      
    3. 另存为 创建视图。

    4. 然后您只需要转到该视图,它就会被排序并准备好导出。

    【讨论】:

      猜你喜欢
      • 2021-07-23
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-09
      • 2020-05-03
      • 2019-10-25
      • 2021-01-14
      相关资源
      最近更新 更多