猫鼬最佳查询-对两个属性进行排序

Zeeshan Hassan Memon

示例mongodb记录:

[
    {first: "Some", middle: "A", last: ""},
    {first: "Some", middle: "B", last: ""},
    {first: "Some", middle: "", last: "C"},
    {first: "Some", middle: "D", last: ""}
]         

输出:

If .sort({middle:1,last:1})  =====> C,A,B,D
If .sort({last:1, middle:1}) =====> A,B,D,C
If [what here ? ]            =====> A,B,C,D
B队

您的问题是您试图对两个字段进行排序,如果另一个不为空,则使用一个。没有简单的排序方式可以提供该功能,因为它总是按一个字段然后按另一个字段排序。

您将需要作为一个多步骤查询来执行此操作。首先获取数据并生成一个新字段进行排序,其中包含last,如果last为空白,则使用middle。然后在该新字段上排序。

这将使索引相当无用,因此对于大型数据集,性能将变差。

更好的方法是更正您的数据,并且永远不要使用空白的姓氏进行保存。如果姓氏为空,则将中间名移至姓氏。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法对猫鼬查询进行排序

来自分类Dev

用$和猫鼬按两个参数查询?

来自分类Dev

从猫鼬的两个AND查询中获取结果

来自分类Dev

从猫鼬的两个AND查询中获取结果

来自分类Dev

在一个查询中按不同属性对两个模型进行排序

来自分类Dev

在一个查询中按不同属性对两个模型进行排序

来自分类Dev

如何加入然后对猫鼬进行查询

来自分类Dev

用猫鼬进行动态查询

来自分类Dev

在猫鼬中查询虚拟属性

来自分类Dev

猫鼬:如何查询引用对象的属性?

来自分类Dev

根据对象属性查询猫鼬文档

来自分类Dev

猫鼬查询子文档属性

来自分类Dev

限制一个查询的猫鼬

来自分类Dev

如何通过依赖于父查询的两个独立查询通过猫鼬查询?

来自分类Dev

猫鼬通过嵌套排序对象进行查询

来自分类Dev

猫鼬查询在两个日期时间之间提取数据

来自分类Dev

猫鼬查询:比较同一文档上的两个值

来自分类Dev

猫鼬查询在两个日期时间之间提取数据

来自分类Dev

如何查询猫鼬,以便搜索必须匹配两个ID

来自分类Dev

Dynamodb:使用两个以上属性进行查询

来自分类Dev

猫鼬查询帮助:分页,排序,嵌套数组的限制

来自分类Dev

用$ or在猫鼬中进行复杂的多个查询

来自分类Dev

如何进行使用AND和OR的条件猫鼬查询?

来自分类Dev

如何在数组中对$ all进行猫鼬查询

来自分类Dev

链接猫鼬查询的最佳方法

来自分类Dev

链接猫鼬查询的最佳方法

来自分类Dev

猫鼬查询从结果中排除一个值

来自分类Dev

Mongodb-猫鼬,通过汇总两个字段进行排序

来自分类Dev

猫鼬:如何使用两个字段对汇总响应进行排序