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

MongoDB, добавете ново { поле :стойност } в съществуващ вграден документ с нотация с точки на множество нива?

Това, което се опитвате да направите, не е възможно предвид вашата схема. Точковата нотация може да бъде многостепенна, но ако има повече от едно ниво, което е масив, вече не може да се адресира с помощта на позиционния оператор '$'.

напр. ще трябва да направите:

db.my_collection.update( 
    {'websites.blog_posts.url': 'http://www.example.com/01.html' },
    {'$set': {'websites.$.blog_posts.$.impressions': 549}},
     true );

Но наличието на два оператора за позиция в актуализацията не е възможно, тъй като MongoDB може да определи само позицията на елемент в първия масив.

Единствената ви възможност е да преработите схемата си, за да имате специална колекция от потребителски уебсайтове (което е по-добре и по други причини в този случай).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Проблем с PUT заявка, използваща Node.js (експрес), Angular и MongoDB

  2. MongoDB:Използване на $sample с C# драйвер

  3. Mongo DB:Намиране на стойност на вложен масив

  4. Настройка на проекта с Django 1.10, mongodb и Python 3.4.3

  5. Опция за проекция за връщане на дължина/размер на полето