只是想知道为什么MongoDB GUI中查看的字段与Mongoose中的模式定义相比会向后倾斜?
这是架构:
这是插入功能:
这是我在Robomongo看到的:
我的问题是,为什么字段按照我在模式中定义它们的方式向后排序?
答案 0 :(得分:4)
两件事:
当您使用Javascript中的对象时,如果使用类似数组(或Map / Set / TypedArray等)的内容,则无法获得有保证的访问顺序或持久性顺序。因此,当您将该配置对象作为Mongoose中的模式传递时,我的猜测是它不会将其转换为某个有序数组,并且可能将其保存在它的对象形式中。要确切地了解它是如何发生的,你需要查看源代码,然后是mongodb驱动程序模块,然后(如果答案仍然不存在)可能会查看MongoDB如何存储事物以及什么类型的数据它在内部使用的结构。我猜测订单不是保证:)
RoboMongo是一个GUI,因此它显示数据的方式不一定与mongodb所拥有的数据顺序相同 - 它可能是为了更容易阅读而排序的。
这有帮助吗?