Как я могу найти и удалить в Mongodb, когда ключ имеет несколько значений?

0
задан Jenwit Virriya 17 January 2019 в 08:26
поделиться

1 ответ

Вот что я сделал и получил хорошие результаты:

db.getCollection('Album')
  .update({ 'name': "a" }, { $pull: { 'file': { 'filename': "def.jpg" } } 
  }, { multi: true })

до базы данных выглядят так:

/* 1 */
{
    "_id" : "1",
    "name" : "a",
    "detail" : "aaa",
    "file" : [ 
        {
            "filename" : "abc.jpg",
            "size" : "1.mb"
        }
    ]
}

/* 2 */
{
    "_id" : "2",
    "name" : "a",
    "detail" : "aaa",
    "file" : [ 
        {
            "filename" : "def.jpg",
            "size" : "1.mb"
        }
    ]
}

/* 3 */
{
    "_id" : "3",
    "name" : "a",
    "detail" : "aaa",
    "file" : [ 
        {
            "filename" : "ghd.jpg",
            "size" : "1.mb"
        }
    ]
}

и после:

/* 1 */
{
    "_id" : "1",
    "name" : "a",
    "detail" : "aaa",
    "file" : [ 
        {
            "filename" : "abc.jpg",
            "size" : "1.mb"
        }
    ]
}

/* 2 */
{
    "_id" : "2",
    "name" : "a",
    "detail" : "aaa",
    "file" : []
}

/* 3 */
{
    "_id" : "3",
    "name" : "a",
    "detail" : "aaa",
    "file" : [ 
        {
            "filename" : "ghd.jpg",
            "size" : "1.mb"
        }
    ]
}

I просто следовал этому: https://docs.mongodb.com/manual/reference/operator/update/pull/

И я не знаю, почему ваш код не работает над База данных также.

0
ответ дан Greg Price 17 January 2019 в 08:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: