Това, което се опитвате да направите, не е възможно предвид вашата схема. Точковата нотация може да бъде многостепенна, но ако има повече от едно ниво, което е масив, вече не може да се адресира с помощта на позиционния оператор '$'.
напр. ще трябва да направите:
db.my_collection.update(
{'websites.blog_posts.url': 'http://www.example.com/01.html' },
{'$set': {'websites.$.blog_posts.$.impressions': 549}},
true );
Но наличието на два оператора за позиция в актуализацията не е възможно, тъй като MongoDB може да определи само позицията на елемент в първия масив.
Единствената ви възможност е да преработите схемата си, за да имате специална колекция от потребителски уебсайтове (което е по-добре и по други причини в този случай).