MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

поставяне на поле в поддокумент в масив по индекс в MongoDB

Искате да използвате update команда във вашата колекция, както следва (пример):

db.collection.update(
    { "my_array.title" : "title_one" },
    { $inc : { "my_array.$.click_number" : 1 } }
);

Какво се случи току-що?

На първия параметър на update дефинирате query за да съответства на документите, които искате да актуализирате. Търсим свойство с име title вътре в масива, наречен my_array . Можете да съпоставите с body или email разбира се, като промените нотацията с точка на:"my_array.email" .

Вторият параметър определя актуализацията, модификацията, която да се приложи. Имаме $inc оператор за увеличаване на полета, който използваме в този израз. query избира документ със съответстващия елемент на масива. Можете да достигнете до този съответстващ елемент от масива с $ нотация. "my_array.$" избира съответстващия елемент на масива, който има title , email и body . Ако се опитате да дадете стойност на несъществуващо поле, MongoDB ще го направи вместо вас. Ако полето не съществува, $inc задава полето на посочената сума. $inc операторът приема положителни и отрицателни инкрементални суми.

Научете повече за командата за актуализиране.

Друг пример:

db.collection.update(
    { _id : "john", "my_array.email" : "email" },
    { $inc : { "my_array.$.click_number" : 1 } }
);



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Натиснете към два отделни масива в едно извикване за актуализиране в mongodb

  2. docker-compose MongoDB Грешка:мрежова грешка при опит за изпълнение на командата 'isMaster' на хост

  3. MongoDB - Уникален индекс срещу съставен индекс

  4. Как мога да се свържа с MongoDB Atlas чрез Robomongo?

  5. mongodb $unwind за неидеален вложен документ