sql >> Database teknologi >  >> NoSQL >> MongoDB

MongoDB, tilføje nyt { felt :værdi } i eksisterende indlejret dokument med flere niveauer prik notation?

Det du prøver at gøre er ikke muligt givet dit skema. Punktnotation kan være på flere niveauer, men hvis der er mere end ét niveau, der er en matrix, kan det ikke længere adresseres ved hjælp af positionsoperatoren '$'.

For eksempel. du skal gøre:

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

Men at have to positionsoperatorer i opdateringen er ikke muligt, da MongoDB kun kan bestemme positionen af ​​et element i det første array.

Din eneste mulighed er at omdesigne dit skema til at have en dedikeret samling af brugerwebsteder (hvilket også er bedre af andre årsager i dette tilfælde).




  1. Er det muligt at oprette en ny database i MongoDB med Mongoose?

  2. Henter HTML fra MongoDB til brug i skabelon

  3. Node.js fejl Fejl:Kan ikke finde modulet 'mongoose'

  4. Kubernetes statefulset med NFS persistent volumen