只是想知道为什么在 MongoDB GUI 中查看的字段与 Mongoose 中的模式定义相比是倒退的?
这是架构:
这是插入函数:
这是我在 Robomongo 中看到的:
我的问题是,与我在架构中定义它们的方式相比,为什么字段的排序方式倒退?
最佳答案
两件事:
当您在 Javascript 中处理对象时,您无法像使用数组(或 Map/Set/TypedArray 等)那样获得有保证的访问顺序或持久顺序。因此,当您在 Mongoose 中将该配置对象作为模式传递时,我的猜测是它不会将其转换为某个有序数组,并可能将其保留为对象形式。要准确了解它是如何进行的,您需要查看源代码,然后查看 mongodb 驱动程序模块,然后(如果仍然没有答案)可能查看 MongoDB 如何存储内容以及数据类型它内部使用的结构。我猜不能保证订单 :)
RoboMongo 是一个 GUI,因此它显示数据的方式不一定与 mongodb 保存的数据顺序相同 — 它可能是为了便于阅读而排序的。
这有帮助吗?
关于node.js - Mongoose 模式字段在 MongoDB 中是反向排序的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712865/