无法找到有关MongoDB如何比较/排序复杂对象的明确文档。我已经尝试了一些例子,发现房产订单确实很重要,房产名称也很重要 示例: -
订购事宜
{“name”: {“first”: “A”, “last”: “B”}} != {“name”: {“last”: “B”, “first”: “A”}}
价值观很重要
{“name”: {“first”: “A”}} < {“name”: {“first”: “B”}}
属性名称很重要
{“name”: {“**f**irst”: “A”}} < {“name”: {“**g**irst”: “A”}}
所以想知道这究竟是如何工作的,我确信缺少属性的东西也会影响这个。
答案 0 :(得分:0)
如果对name
等嵌入对象字段进行排序,则使用二进制表示(BSON对象)级别进行排序比较,这不是很有用。
您通常要做的是使用点表示法标识这些对象中的特定字段,并按照您想要的顺序排列:
// Sort on last name, and then first name
db.test.find().sort({'name.last': 1, 'name.first': 1})