См. Пример ниже (формат json от mongochef). Мне нужно добавить новое поле для каждого элемента нашей коллекции, называемого isReadOnly (bool). Как мне это сделать? Я могу легко добавить его в корень документа, но сражаться, чтобы сделать это в каждом элементе массива.Добавить новое поле в массив объектов типа в коллекцию в MongoDB
{
"_id" : "fda42f22-0fa4-4e4a-94bf-245b1124c8b9",
"_t" : "FullConfiguration",
"DeviceConfigName" : "Illinois",
"Elements" : [
{
"_t" : "NumberConfigurationElement",
"AsciiConfigNumber" : NumberInt(10),
"DataType" : NumberInt(1),
"ByteOffset" : NumberInt(0),
"Name" : "alcohol_limit",
"Description" : "The alcohol limit of the device (ug/l)",
"AckResponse" : "HT-CONFG,010,00119",
"DevicePart" : NumberInt(1),
"Value" : NumberInt(119),
"DefaultValue" : NumberInt(119),
"Min" : NumberInt(50),
"Max" : NumberInt(500)
}, .....
Это подталкивает дополнительный документ '{isReadOnly: false}' к существующему массиву элементов, а не к каждому документу внутри массива. Об этом, по-моему, единственный способ сделать это - внутри JavaScript, используя Mongoose или другой драйвер MongoDB. – dyouberg
Ты прав, мой плохой. Это делает трюк. – guymaor86
@dyouberg есть лучший способ сделать это, и вы, вероятно, не хотите итерации курсора, как это показано в ответе, потому что есть возможность для состояния гонки и помнить закон Мерфи – styvane