Details
-
Question
-
Resolution: Works as Designed
-
Major - P3
-
None
-
None
-
None
-
None
Description
When I'm trying to run updateMany() in the following way, my server returns an error:
db.collection.updateMany(
|
<query>,
|
<pipeline>
|
);
|
Error: Error: the update operation document must contain atomic operators.
When I'm using update() instead, it works. Using it like so:
db.collection.update(
|
<query>,
|
<pipeline>,
|
{
|
multi: true
|
}
|
);
|
I tried in on version 4.2 and 4.4 - no difference. The exact code looks like this:
Doesn't work:
db.getCollection("testsets").updateMany(
|
{ properties: { $exists: true } },
|
[
|
{ $set: { "documentProperties.documentCategory": "$properties.documentCategory", "documentProperties.pageCategories": "$properties.pageCategories"} },
|
{ $unset: ["properties.documentCategory", "properties.pageCategories"] }
|
]
|
);
|
Works:
db.getCollection("testsets").update(
|
{ properties: { $exists: true } },
|
[
|
{ $set: { "documentProperties.documentCategory": "$properties.documentCategory", "documentProperties.pageCategories": "$properties.pageCategories"} },
|
{ $unset: ["properties.documentCategory", "properties.pageCategories"] }
|
],
|
{
|
multi: true,
|
}
|
);
|
Error:
2021-01-12T09:36:56.413+0100 E QUERY [js] Error: the update operation document must contain atomic operators :
|
DBCollection.prototype.updateMany@src/mongo/shell/crud_api.js:625:1
|
@(shell):1:1
|
Thanks!