Search code examples
mongodbmongoose-schema

I have an array of documents in MongoDB like


    "references" : [ 
        {
            "_id" : ObjectId("5f9aab1d8e475489270ebe37"),
            "languageCode" : "en",
            "languageId" : 1,
            "productId" : ObjectId("5f9aab1c8e475489270ebe2d")
        }
    ],
    "isDeleted" : 0,
    "productId" : 19

I have an array of documents in my references key. Now I want to push documents into this array of documents in update query using mongoose. Here's my query

Models.update({productId : 19}, {references : {$addToSet :{
                    languageCode : "ar",
                    languageId : 2,
                    productId : ObjectId("5f9aab1c8e475489270ebe2f")
                } } })

Now instead of adding this document in existing array it is doing


    "isDeleted" : 0,
    "productId" : 19,
    "references" : [ 
        {
            "_id" : ObjectId("5f9ab8ee72273a8cb4bf5865")
        }
    ],

Can anyone tell me what i am doing wrong?


Solution

  • There is a syntax error.

    
    .update({productId : 19}, {$addToSet :{
        references:{
                        languageCode : "ar",
                        languageId : 2,
                        productId : ObjectId("5f9aab1c8e475489270ebe2f")
                    } } })
    
    

    You have to use the operator first than the field name.

    Note the switched order of addToSet and field references