mongodb 中的键值对排序,它如何影响
key value pair ordering in mongodb, how does it affects
在阅读 mongodb 权威指南时,我看到了一段话:
文档中的 Key/value 对是有序的:{x:1,y:2}
与 {y:2,x:1}
不同。字段顺序通常无关紧要,您不应将架构设计为依赖于特定的字段顺序。
我想知道
- 上面的 x 和 y 例子怎么不一样。
- 有人可以用架构的用例实例来解释我吗
设计取决于特定的字段顺序。以及顺序如何不同
如果有的话,会影响编程逻辑
谢谢。
如果您对嵌入对象进行精确匹配,这很重要。
> db.test.drop()
> db.test.insert({ "z" : { "x" : 1, "y" : 2 } })
> db.test.insert({ "z" : { "y" : 2, "x" : 1 } })
> db.test.count({ "z" : { "x" : 1, "y" : 2 } })
1
> db.test.count({ "z" : { "y" : 2, "x" : 1 } })
1
不要设计依赖于此事实的架构。无论字段顺序如何,您都可以使用点符号进行匹配。
> db.test.count({ "z.x" : 1, "z.y" : 2 })
2
在阅读 mongodb 权威指南时,我看到了一段话:
文档中的 Key/value 对是有序的:{x:1,y:2}
与 {y:2,x:1}
不同。字段顺序通常无关紧要,您不应将架构设计为依赖于特定的字段顺序。
我想知道
- 上面的 x 和 y 例子怎么不一样。
- 有人可以用架构的用例实例来解释我吗 设计取决于特定的字段顺序。以及顺序如何不同 如果有的话,会影响编程逻辑
谢谢。
如果您对嵌入对象进行精确匹配,这很重要。
> db.test.drop()
> db.test.insert({ "z" : { "x" : 1, "y" : 2 } })
> db.test.insert({ "z" : { "y" : 2, "x" : 1 } })
> db.test.count({ "z" : { "x" : 1, "y" : 2 } })
1
> db.test.count({ "z" : { "y" : 2, "x" : 1 } })
1
不要设计依赖于此事实的架构。无论字段顺序如何,您都可以使用点符号进行匹配。
> db.test.count({ "z.x" : 1, "z.y" : 2 })
2