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

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 条评论
登录 后参与评论

相关文章