gpt4 book ai didi

azure-cosmosdb - Cosmos DB 应用按字段排序会删除所有没有该字段的文档

转载 作者:行者123 更新时间:2023-12-05 05:20:12 25 4
gpt4 key购买 nike

我们正在使用 Mongo API 从 mongoDB 迁移到 CosmoDB。我们在围绕排序的查询行为中遇到了以下差异。

使用 CosmoDB mongo API 按字段排序会删除所有没有该字段的文档。是否可以修改查询以包含空值以复制 mongo 行为?

例如,如果我们有以下 2 个文档

[{
“编号”:“p1”,
“优先级”:1
},{
“id”:“p2”
}]

执行:排序({“优先级”:1})
cosmoDB 将返回单个结果“p1”。
mongo 将按 'p2'、'p1' 的顺序返回两个结果,空文档将在最前面。

最佳答案

据我所知,空值不会包含在查询结果排序扫描中。

这里有一个解决方法,您可以在排序方法中设置一个不存在的字段来强制引擎扫描所有数据。

像这样:

db.getCollection('brandotestcollections').find().sort({"test": 1, "aaaa":1})

结果是这样的:

enter image description here

关于azure-cosmosdb - Cosmos DB 应用按字段排序会删除所有没有该字段的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44771160/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com