I am new to the world of Mongodb, and now I am struggling with how I can remove, update an element in the nested field of the document array. Here is my samle document:
{ "_id" : ObjectId("55f354533dd61e5004ca5208"), "Name" : "Hand made products for real!", "Description" : "Products all made by hand", "Products" : [ { "Identifier" : "170220151653", "Price" : 20.5, "Name" : "Leather bracelet", "Description" : "The bracelet was made by hand", "ImageUrl" : "https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcQii6JCvXtx0iJGWgpvSl-KrdZONKYzDwS0U8uDvUunjO6BO9Aj" } ] }
In my method, I get the document identifier and the identifier (Identifier) ββof the Product that I want to delete. Can someone tell me how I can remove the item with the identifier: 170220151653 from the "Products" field?
I tried:
var query = Query.And(Query.EQ("_id", categoryId), Query.EQ("Products.Identifier", productId)); var update = Update.Pull("Products", new BsonDocument(){{ "Identifier", productId }}); myDb.Applications().Update(query, update);
as suggested here: MongoDB removes a subdocument document from a subdocument
But I get an error
myDb.Applications ()
It is simply impossible to find.
SOLVE:
var pull = Update<Category>.Pull(x => x.Products, builder => builder.EQ(q => q.Identifier, productId)); collection.Update(Query.And(Query.EQ("_id", ObjectId.Parse(categoryId)), Query.EQ("Products.Identifier", productId)), pull);