Hi All,
I use command:
db.StatusLogs.updateMany({“Status”: {"$exists": true, $ne: null }}, {"$set": {“Status.$[].User.FirstName”: “First”,“Status.$[].User.LastName”: “Last”}})
but i only replace if the array not have null element, so any idea if i want to replace all include null element?
{
"_id" : BinData(3,"234234"),
"Status" : [
{
"TimeStamp" : NumberLong(159924305513),
"Status" : 0,
"UserType" : 3,
"User" : {
"_id" : BinData(3,"g6HSB/23/69yCg=="),
"FirstName" : "AAAAA",
"LastName" : "BBBBB",
}
},
{
"TimeStamp" : NumberLong(1594349205539),
"Status" : 300,
"UserType" : 0,
"User" : null
}
]
}
{
"_id" : BinData(3,"1z74546=="),
"Status" : [
{
"TimeStamp" : NumberLong(159921438762),
"Status" : 0,
"UserType" : 3,
"User" : {
"_id" : BinData(3,"BtuZq5f+2kWFEjJ4ere34KCKdhkA=="),
"FirstName" : "First",
"LastName" : "Last"
}
},
{
"TimeStamp" : NumberLong(1599218795),
"Status" : 200,
"UserType" : 3,
"User" : {
"_id" : BinData(3,"BtuZq5f+2k34WFEjJK545CKdhkA=="),
"FirstName" : "First",
"LastName" : "Last"
}
}
]
}
I also change filter to db.StatusLogs.updateMany({“Status”: {"$exists": true }}, {"$set": {“Status.$[].User.FirstName”: “First”,“Status.$[].User.LastName”: “Last”}}) but i get the error:
WriteError({
"index" : 0,
"code" : 28,
"errmsg" : "Cannot create field 'FirstName' in element {User: null}",
"op" : {
"q" : {
"Status" : {
"$exists" : true
}
},
"u" : {
"$set" : {
"Status.$[].User.FirstName" : "First",
"Status.$[].User.LastName" : "Last"
}
},
"multi" : true,
"upsert" : false
}
})