应用按字段排序的CosmoDB将删除所有没有该字段的文档

时间:2017-06-27 01:46:51

标签: azure-cosmosdb

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

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

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

[{ "id":"p1", "priority":1 },{ "id":"p2" }]

执行: sort({"priority":1})
cosmoDB将返回单个结果' p1'。
mongo将按顺序返回两个结果' p2',' p1',空文档将是第一个。

1 个答案:

答案 0 :(得分:1)

据我所知,null值不包括在查询结果排序扫描中。

这是一种解决方法,您可以在sort方法中设置一个not exists字段来强制引擎扫描所有数据。

像这样:

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

结果如下:

enter image description here