I have a data that looks like below in MongoDB
{
_id: aasdfeasfeasdf,
todo: [
{_todoIde: 333, _with: []},
{_todoIde: 111, _with: []},
]
}
I want to $addToSet
value to _todoIde: 333
's _with
like {_todoIde: 333, _with: [aaaa]},
. How can I do it?
.updateOne(
{_id},
{ $addToSet: {}}
)
I got to the document but I can't specify that _todoIde: 333
to update just that one.
The positional $ operator identifies an element in an array to update without explicitly specifying the position of the element in the array,
.updateOne(
{ _id: "aasdfeasfeasdf", "todo._todoIde": 333 },
{
$addToSet: {
"todo.$._with": "aaaa"
}
}
)
You have to add an extra condition to specify the todoIde
Try this:
db.collection.update(
{$and:[{_id: typeId},{'todo._todoIde': 333}]},
{$set: { "todo._todoIde.$._with":[a,b,c]}},
);
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.