Is it possible to set multiple objectId to multiple document in one mongo update query?

Viewed 77

Suppose I have a MongoDB collection like this:

{
  "_id": "id_1", // this is an objectId
  "field_1" : 4,
  "field_2" : "objectId_1" // this is an objectId
},
{
  "_id": "id_2",
  "field_1" : 3,
  "field_2" : "objectId_2" // this is an objectId
},
{
  "_id": "id_3",
  "field_1" : 2,
  "field_2" : "objectId_3" // this is an objectId
},...

and now everytime I update a document, I want to update the second field "field_2" a new ObjectId (auto generated or whatever). But the value must be unique (like an id)

For an example, suppose when I run this query

db.collection.updateMany(
 { "field_1" : { $lt : 4} },
 { $set: { "field_2": "new_ObjectId"} }// an objectId should be generated for every matched document
)

The result should update 2 document

{
  "_id": "id_2",
  "field_1" : 3,
  "field_2" : "objectId_4" // a new objectId should be generate for this
},
{
  "_id": "id_3",
  "field_1" : 2,
  "field_2" : "objectId_5" // and another objectId for this
}

Is it possible to archive that in one query? I am using .net mongo driver and it would be great if you could show me how to do this by C# code. Otherwise, it is fine with a raw query.

0 Answers
Related