Apa yang Anda coba lakukan tidak mungkin dilakukan mengingat skema Anda. Notasi titik bisa multi level tetapi jika ada lebih dari satu level yang merupakan array, maka tidak bisa lagi ditangani menggunakan operator posisi '$'.
Misalnya. Anda harus melakukan :
db.my_collection.update(
{'websites.blog_posts.url': 'http://www.example.com/01.html' },
{'$set': {'websites.$.blog_posts.$.impressions': 549}},
true );
Tetapi memiliki dua operator posisi dalam pembaruan tidak dimungkinkan karena MongoDB hanya dapat menentukan posisi elemen dalam larik pertama.
Satu-satunya pilihan Anda adalah mendesain ulang skema Anda untuk memiliki kumpulan situs web pengguna khusus (yang lebih baik untuk alasan lain juga dalam kasus ini).