Details
-
Bug
-
Resolution: Done
-
Major - P3
-
None
-
2.9.0
-
None
-
Windows 7
Description
Hi,
I'm trying to update a nested array element in a single document using array filters. The call to UpdateOneAsync succeeds, but the returned matched count and modified count, both are 0.
Here is how I'm calling the API:
var sectionFilter = new BsonDocumentArrayFilterDefinition<BsonDocument>(new BsonDocument("section.section_id", new BsonDocument("$eq", sectionId))); |
|
|
var taskFilter = newBsonDocumentArrayFilterDefinition<BsonDocument>(newBsonDocument("task.task_id", newBsonDocument("$eq", taskId))); |
|
|
await collection.UpdateOneAsync(
|
Builders<Project>.Filter.Eq(x => x.Id, id),
|
Builders<Project>.Update
|
.Set("sections.$[section].tasks.$[task].title", task.Title), |
new UpdateOptions() { |
ArrayFilters = new List<ArrayFilterDefinitions>(){sectionFilter, taskFilter} |
});
|
Strangely, if I run the below code directly in MongoDB shell (Robo3T), the document gets updated:
db.getCollection('Projects').update( |
{_id:ObjectId("5d42a79a3f417606300792cb")}, |
{$set: {"sections.$[section].tasks.$[task].title":"Create website 21"}}, |
{arrayFilters: [{"section.section_id": "4aff46ec59df4866ad84c6544aff143e"}, {"task.task_id": "5d42a8e13f417606300792ce"}]} |
)
|
I'm using MongoDB.Driver v 2.9.0-beta2
Please help!
Cheers,