8

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

正如您在此处看到的,我正在过滤{name: 'SelectedProduct'}并且正在排序{name: 1}过滤和排序

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

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

4

3 回答 3

6

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

于 2019-03-20T05:31:25.777 回答
3

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

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

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

解释:

  1. db.videos 是集合名称(videos 是集合名称)
  2. 聚合是一个命令,它创建具有多个订单的管道,例如查询($match)并输出结果($out) - 它需要命令数组)
  3. $match 就像 find()
  4. $out 是如何处理结果的 - 所以我要求将查询找到的所有文档插入一个名为“heavy”的新集合(或存在一个)
于 2020-10-05T16:14:46.620 回答
0

我也需要那个。

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

  2. 过去你的排序:

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

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

于 2020-12-23T03:00:09.173 回答