Как выполнить запрос, удаляющий элементы из вложенного массива в MongoDb, используя Morphia? - PullRequest
0 голосов
/ 17 января 2019

У меня есть следующий объект mongoDB

{
    "_id" : ObjectId("5c3f32a4e17c5739bccb9115"),
    "name" : "John",
    "friends" : [
            {
                    "name" : "Paul"
            },
            {
                    "name" : "Lisa"
            }
    ]
}

Мне нужно удалить какой-то элемент из него. В нативном запросе mongodb это выглядит как

 db.users.update({}, {$pull: {friends: {name:"Lisa"}}})

Но как я могу сделать это через API Morhia?

1 Ответ

0 голосов
/ 17 января 2019

Я решаю эту проблему, используя:

Query<Group> query = getDatastore().createQuery(Group.class);
UpdateOperations<Group> ops = getDatastore().createUpdateOperations(Group.class)
                .removeAll("friends", new BasicDBObject("name", "Lisa"));
getDatastore().update(query, ops);
...