MongoDB documentation个州:

对于具有多个键的索引(即复合索引)the sequence of fields is important.

但ECMAScript对对象的定义如下:

对象是类型对象的成员.It is an unordered collection of properties每个包含一个基本值、对象或函数.

node.js中使用MongoDB(例如使用this module)时,您使用的是服务器端javascript,如下例所示.

当MongoDB需要object(又称无序属性集合)时,如何指定序列?

collection.ensureIndex({
    date    : -1,
    client  : 1,
    product : 1
});

推荐答案

在MongoDB中,文档中字段的顺序确实很重要,所有语言驱动程序都提供了一种以这种方式指定文档的方法,即使底层编程语言没有这样的概念.

MongoDB在其shell中使用的文档格式类似于JSON,但不是严格的JSON.除此之外,字段的顺序始终保持不变.

在Javascript中,标准将字段定义为无序,因此实现可以自由忽略/不保留顺序.但是in practice, all implementations do preserve the ordering. In particular the 100 preserves the ordering, which is the engine used in 101 so it's no problem.

Mongodb相关问答推荐

geoLocation或geoNear为坐标和半径使用let变量

发布到 MongoDB 时生成的附加id字段

如何在 mongodb 查找的外键中使用正则表达式

分页时根据唯一字段mongodb获取数据

如何在 mongodb golang 的单个更新调用中使用 $set 和 $inc?

Mongodb聚合中基于其他字段值的多个条件的动态新字段值

是否可以迭代 mongo 游标两次?

如果 mongoDB 服务器正在运行,如何从驱动程序判断

mongodb - 查找具有最接近整数值的文档

$lookup 结果 mongodb 的计数

如何使用原子操作在一个文档中切换布尔字段?

有没有办法自动更新 MongoDB 中的两个集合?

如何使用 MongoDB 以编程方式预拆分基于 GUID 的分片键

遍历所有 Mongo 数据库

MongoDb 聚合 $match 错误:Arguments must be aggregate pipeline operators

MongoDb 连接被拒绝

我如何将 mongodb 与electron一起使用?

Mongoose upsert 不创建默认模式属性

创建模型时出现mongoose错误

将 FilterDefinition 转换为可以在 mongo shell 中运行的常规 json mongo 查询