在MongoDB

时间:2016-01-11 01:30:21

标签: node.js mongodb mongoose robo3t

只是想知道为什么MongoDB GUI中查看的字段与Mongoose中的模式定义相比会向后倾斜?

这是架构:

Mongoose Schema

这是插入功能:

enter image description here

这是我在Robomongo看到的:

enter image description here

我的问题是,为什么字段按照我在模式中定义它们的方式向后排序?

1 个答案:

答案 0 :(得分:4)

两件事:

  • 当您使用Javascript中的对象时,如果使用类似数组(或Map / Set / TypedArray等)的内容,则无法获得有保证的访问顺序或持久性顺序。因此,当您将该配置对象作为Mongoose中的模式传递时,我的猜测是它不会将其转换为某个有序数组,并且可能将其保存在它的对象形式中。要确切地了解它是如何发生的,你需要查看源代码,然后是mongodb驱动程序模块,然后(如果答案仍然不存在)可能会查看MongoDB如何存储事物以及什么类型的数据它在内部使用的结构。我猜测订单不是保证:)

  • RoboMongo是一个GUI,因此它显示数据的方式不一定与mongodb所拥有的数据顺序相同 - 它可能是为了更容易阅读而排序的。

这有帮助吗?