2022-03-27

MongoDB - New alternative update syntax in Mongo 5

 db.runCommand({

   update: "collection_name",

   updates: [

       {

           q: {

               "field1": "value1",

               "field2": "value2",

           },

           u: {

               $set: {

                   "field3": "value3",

               },

               multi: false,

               upsert: false,

           }

       }

   ],

});


MongoDB - Filter documents where a given field is NOT an array

 db.collection.aggregate([

    {$match: {

         $expr: { $ne: [ {$isArray: "$field_to_check"}, true] }

    }}

]);   

MongoDB - Filter when the result of two AND conditions, is NOT true (not -> X and Y)

db.collection_name.find({

    $nor: [

        {$and: [

            {"field1": "value"},

            {"field2.subfield": "value"},

        ]}

    ]

});   

2022-03-07

MongoDB - Update all collection documents with a new copy of an existing field

 db.COLLECTION_NAME.update(

    {

        FIELD_1: ANY_VALUE

    },

    [

        {$set: {

            "NEW_FIELD_COPY": "$ORIGINAL_SOURCE_FIELD", 

        }},

    ],

    {

        multi: true, 

        upsert: false,

    }

);