node.js - Mongoose 模式字段在 MongoDB 中是反向排序的

标签 node.js mongodb mongoose robo3t

只是想知道为什么在 MongoDB GUI 中查看的字段与 Mongoose 中的模式定义相比是倒退的?

这是架构:

Mongoose Schema

这是插入函数:

enter image description here

这是我在 Robomongo 中看到的:

enter image description here

我的问题是,与我在架构中定义它们的方式相比,为什么字段的排序方式倒退?

最佳答案

两件事:

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

  • RoboMongo 是一个 GUI,因此它显示数据的方式不一定与 mongodb 保存的数据顺序相同 — 它可能是为了便于阅读而排序的。

这有帮助吗?

关于node.js - Mongoose 模式字段在 MongoDB 中是反向排序的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712865/

相关文章:

javascript - 在 Node.js 应用程序中引用自定义架构时出错

javascript - 如何在函数之外访问 promise 回调值?

javascript - 模块之间共享的事件发射器

javascript - Node.js 中的数据库查询(PHP 风格)

node.js - TypeError : this. add 不是 Node js应用程序中的函数

c# - MongoDb c#官方驱动批量更新

node.js - JSON.stringify() 未正确将对象转换为字符串

node.js - Mongoose 只读,没有架构

javascript - createClient 遇到问题

sql - 我将如何构建用于接收销售订单的数据库?