Suppose the document as below:
{
"group_id": 1,
"group_token": "3bu48xp9ok5",
"group_passward": "0000",
"admin": "Forne",
"member": [
{
"mid": 1,
"Name": "Forne",
"Email": "[email protected]",
"Rank": "admin",
"sub": [
"test",
"xxx",
"Forne"
]
}
]
}
Here is my trial:
var collection = myDB.collection('test');
collection.update({"group_token":"3bu48xp9ok5"},{$pull:{"member.$[elem1].sub":"test"}}, {arrayFilters: [{"elem1.Email":"[email protected]"}],multi: true})
How did I update the element with "member.Email":"[email protected]" to make its sub["xxx", "Forne"]
But it prints:
name: 'MongoError',
message: 'No array filter found for identifier \'elem1\' in path \'member.$[elem1].sub\'',
driver: true,
index: 0,
code: 2,
errmsg: 'No array filter found for identifier \'elem1\' in path \'member.$[elem1].sub\'' }
How can I update "sub":[]...?