Как удалить конкретный объект, используя запрос mongodb - PullRequest
0 голосов
/ 02 мая 2019

Здесь у меня есть один массив с именем 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...