【问题标题】:How do I get N random documents from Cosmos DB using the MongoDB API?如何使用 MongoDB API 从 Cosmos DB 获取 N 个随机文档?
【发布时间】:2021-08-20 05:01:37
【问题描述】:

我正在使用 azure cosmos DB 作为 MongoDB 版本 4.0.0。我需要使用 MongoDB API 从 Azure Cosmos DB 获取 N 个随机文档。我试过使用 $sample 运算符,但每次查询时它都会以相同的顺序给我文档。

db.collectionName.aggregate([{$sample: {size: 1}}])

无论我运行此查询多少次,我都会从集合中获取相同的文档。

【问题讨论】:

  • 你用的是什么版本
  • MongoDB 服务器版本 4.0.0 和 MongoDB shell 版本 3.6.8
  • 我在自己这边测试过,遇到了同样的问题,写代码测试的时候也是这样。
  • 这似乎是一个bug,我已经用新的数据库/集合进行了测试,我还在一个包含 100 多个文档的集合中进行了测试,都没有运气。但确实有些人成功了。

标签: mongodb azure-cosmosdb azure-cosmosdb-mongoapi


【解决方案1】:

我找不到任何关于 $sample 如何执行的文档,但我认为我们遇到的问题可能与提到的 here 有关。这意味着如果某些条件不满足,它将获取结果并对它们进行排序,然后返回项目的大小计数。所以我们得到的总是一样的。我会尝试找到更多详细信息,任何进一步的发现都会更新。

【讨论】:

    猜你喜欢
    • 2014-10-06
    • 2019-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    相关资源
    最近更新 更多