I have a MongoDB document like this:
{
"_id": ObjectId("5589044a7019e802d3e9dbc5"),
groups:[
{
_id: 5a3326d01b2213894672fdd0,
group_id: '13239517',
thread_id: 'f32940da-12-15-01-9325790',
Last_post_id: '981206845'
}
]
}
I've tried a variation of $set
and $unset
using:
User.findOneAndUpdate({userId}, {groups:{$set: {thread_id: ''}}}, {new: true})
when I tried multiple variations of the above code I keep on getting groups where the affected object is only left with an id.
[
{ _id: 5a3326d41b2213894672fdd1 },
{
_id: 5a332a81479a728ebe4226e5,
group_id: '13239517',
thread_id: 'f32940da-12-15-01-9325790',
Last_post_id: '981206845'
}
]
I've also tried looping over the array of groups removing the key using reduce then just trying to set the groups to this new values like and that didn't work either.
let groups = groups.reduce((prev, ele)=>{
// group_id is passed in as an argument
if(ele.group_id === group_id){
let chatThread = ele.thread_id
delete ele.thread_id
console.log(ele)
return chatThread
} else {
return prev
}
}, false)
User.findOneAndUpdate({userId}, {groups}, {new: true})
this just doesn't do anything.
My intended result would be where thread_id
is gone
groups:[
{
_id: 5a3326d01b2213894672fdd0,
group_id: '13239517',
Last_post_id: '981206845'
}
]
Although similar to link1 and link2 both of those solutions either don't change anything when saved or remove all properties other than _id.