2017-02-14 7 views
1

Как я могу увеличить значение определенного элемента массива документа MongoDB в Meteor или nodeJS?MongoDB обновить элемент массива документа по индексу в nodeJS

Скажем, я следующий документ:

{ 
    "_id" : "4tP6ewe4Z5kwYA3Je", 
    "name" : "chutia", 
    "address" : "shonir akhra", 
    "itemCount" : "4", 
    "items" : [ 
     "3", 
     "4", 
     "13", 
     "24" 
    ] 
} 

Мне нужно, чтобы увеличить n -го элемента items массива. Где n является переменной.

ответ

1

правильный способ сделать это состоит в:

{$inc: {[`items.${idx}`]: 1}} 

Где idx это индекс массива. Courtesy MasterAM's comment

1

Как указано здесь https://docs.mongodb.com/manual/reference/operator/update/inc/, , вы можете увеличивать элемент в массиве с помощью точечной нотации.

В следующем примере увеличить первый элемент элементов на 1.

db.<collection>.update(
<query>, 
{ $inc: { "items.0": 1 } } 
) 
+0

В моем случае индекс массива будет переменной. Итак, '' items.0 "' не будет работать, я думаю. Как с этим бороться? –

+3

'' '{$ inc: {['.. $ {Idx} ']: 1}}' '', где 'idx' - ваш индекс. – MasterAM

+0

@mostafiz вы решили на основе MasterAM comment –

 Смежные вопросы

  • Нет связанных вопросов^_^