Как вы можете указать порядок свойств в объекте javascript для индекса MongoDB в node.js?
Документация MongoDB гласит:
Для индексов с более чем одним ключом (т.е. составных индексов) важна последовательность полей.
Но ECMAScript определяет объект следующим образом:
Объект является членом типа Object. Это неупорядоченный набор свойств, каждый из которых содержит примитивное значение, объект или функцию.
При использовании MongoDB
в node.js
(например, используя этот модуль), вы используете javascript на стороне сервера, как в примере ниже.
Как вы указываете последовательность, когда MongoDB ожидает object
(неупорядоченный набор свойств AKA)?
collection.ensureIndex({
date : -1,
client : 1,
product : 1
});
Ответы
Ответ 1
В MongoDB порядок полей в документе действительно значителен, и все языковые драйверы предоставляют средство для указания документов таким образом, даже если базовый язык программирования не имеет такой концепции.
Формат документа, который использует MongoDB в своей оболочке, похож на JSON, но не является строгим JSON. Между прочим, порядок полей всегда сохраняется.
В Javascript стандарт определяет поля как неупорядоченные, поэтому реализации могут игнорировать/не сохранять порядок. Но на практике все реализации сохраняют порядок. В частности, V8 engine
сохраняет порядок, который является двигателем, используемым в node.js
, поэтому он не представляет проблемы.