Здесь у меня есть один массив с именем find
, в этом массиве, значения которого представляют собой то же значение, что и в моем документе хобби , я хочу удалить конкретный объект, я пытался, но не мог пожалуйста, помогите мне.
Мой документ в коллекции хобби
{
"_id" : ObjectId("5ccaa152feee5f2e60dff06f"),
"name" : "ABC",
"hobbies" : {
"cricket" : {
"hobbyName" : "cricket"
},
"football" : {
"hobbyName" : "football"
}
}
},
{
"_id" : ObjectId("5ccaa196feee5f2e60dff070"),
"name" : "D",
"hobbies" : {
"Tennis" : {
"hobbyName" : "Tennis"
},
"Volleyball" : {
"hobbyName" : "Volleyball"
},
"basketball" : {
"hobbyName" : "basketball"
}
}
}
После сброса моего документа посмотрите это ниже (Ожидаемый вывод)
{
"_id" : ObjectId("5ccaa152feee5f2e60dff06f"),
"name" : "ABC",
"hobbies" : {
"cricket" : {
"hobbyName" : "cricket"
},
"football" : {
"hobbyName" : "football"
}
}
},
{
"_id" : ObjectId("5ccaa196feee5f2e60dff070"),
"name" : "D",
"hobbies" : {
"basketball" : {
"hobbyName" : "Volleyball"
}
}
}
Я пытался так
let find = [ 'Tennis', 'basketball' ];
let match = {'$or' : [] };
for(let i=0;i<find.length;i++){
let key1 = find[i];
let obj = {};
obj[find[i]] = { $exists : true };
match['$or'].push(obj);
}
print(match);
db.Hobbies.find(match)