pandas PyMongo -获得20%(随机或不)的集合

amrnrhlw  于 2023-01-19  发布在  Go
关注(0)|答案(1)|浏览(120)

我有一个很大的MongoDB集合- 16 GB,1.3亿行。
我需要查询数据库,只得到20%的数据。
最好的选择是只获得每第5行,但随机选择20%也可以工作。
示例不是一个好的选择,因为很可能发生重复。
有什么建议吗?我该怎么做?

3b6akqbq

3b6akqbq1#

如果确实需要,可以选择使用$setWindowFields

db.collection.aggregate([
  {$setWindowFields: {
      sortBy: {_id: 1},
      output: {
        index: {
          $sum: 1,
          window: {documents: ["unbounded", "current"]}
        }
      }
  }},
  {$match: {$expr: {$eq: [{$mod: ["$index", 5]}, 0]}}},
  {$unset: "index"}
])

了解它在playground example上的工作原理

相关问题