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

Opdater enkelt felt i MongoDB i et enkelt indlejret dokument

Du kan sandsynligvis bruge positionsoperatoren for at identificere array-elementet:

Så måske noget som:

User.collection.update(
    { :_id => user.id, :matches => BSON::ObjectId('4e40238dbc9f6ec5a6000eed') },
    { :$set => { 'alert.matches.$' => matches } }
)

Men som Sergio bemærker, er det vanskeligt at aflæse strukturen af ​​dine dokumenter baseret på den begrænsede information i dit spørgsmål.

Det ser ud til, at der er kommet flere oplysninger efter jeg svarede, og det ser ud som:

{ :$set => { 'alerts.$.matches' => ... } }

er hvad du har brug for. Og du skal inkludere :matches i forespørgslen, så $ har noget at henvise til.




  1. MongoError:driveren er inkompatibel med denne serverversion

  2. Træning mislykkedes - AWS Machine Learning

  3. Flask er langsom til at forespørge Mongdb

  4. Giver MongoDB en måde at generere sekventielle værdier på?