MongoDB - как вытащить запись на основе первого элемента в массиве - PullRequest
2 голосов
/ 16 марта 2020

Вот 2 документа в прикрепленном файле. Мне нужно вытащить поле заголовка на основе фильтра (Харрисон Форд - 1-й элемент в поле актера). Поэтому мне нужно вытащить 2-й документ. Спасибо за вашу помощь.

{
        "_id" : ObjectId("5e66e96a2f86fd04deaa59c5"),
        "title" : "Star Trek Into Darkness",
        "actors" : [
                "Chris Pine",
                "Zachary Quinto",
                "Harrison Ford",
                "Karl Urban"
        ]
}
{
        "_id" : ObjectId("5e66e96a2f86fd04deaa59c6"),
        "title" : "Raiders of the lost ark",
        "actors" : [
                "Harrison Ford",
                "Jonathan Frakes",
                "Brent Spiner",
                "LeVar Burton"
        ]
}

Ответы [ 3 ]

1 голос
/ 16 марта 2020

так что вы хотите получить название мов ie, в котором Harrison Ford в качестве первого актера, верно? если это так, попробуйте:

db.collection.find(
    { 'actors.0': 'Harrison Ford' },
    { title: 1, _id: 0 }
)

https://mongoplayground.net/p/f4-o13NjYNc

Кстати, когда вы говорите pull, это может сбить людей с толку, потому что есть $pull оператор в mongodb.

0 голосов
/ 16 марта 2020
db.collection.update({_id:'Your match id'}, {$pull:{actors:'Jonathan Frakes'}});

you can pull record with $pull and then update that record. Please check below link

https://docs.mongodb.com/manual/reference/operator/update/pull/

0 голосов
/ 16 марта 2020

db.collectionName.update({name:'documentName'}, {$pull:{actors:'Jonathan Frakes'}});

Это удаляет строку Джонатана Фрэйкса из массива актеров в вашем имени документа

...