Монго запрос на обновление, эквивалентный MySQL в

0

Я пытаюсь обновить несколько записей в mongodb. одиночная Запись выглядит следующим образом:

"_id" : ObjectId("59704fac4ed2aa47e68c7f50"),
    "uid" : 157140,
    "ts" : NumberLong("170720120636"),
    "a" : {
        "em" : "[email protected]",
        "fk" : "[email protected]",
        "mo" : "1248849893",
        "d" : 0,
        "bl" : 0,
        "att3" : "city20788",
        "att66" : "fname20788"
    }
}
{
    "_id" : ObjectId("59704fac4ed2aa47e68c7f51"),
    "uid" : 157141,
    "ts" : NumberLong("170720120636"),
    "a" : {
        "em" : "[email protected]",
        "fk" : "[email protected]",
        "mo" : "1248849920",
        "d" : 0,
        "bl" : 0,
        "att3" : "city20789",
        "att66" : "fname20789"
    }
}

Я хотел обновить значение массива "объявление" для определенных записей.

Запрос, который я пытаюсь:

db.userDetails.find({ uid : {$in : [157140,157141]}}).update({$set: {"a.d":1}})

но я получаю ошибку:

"errmsg" : "A single update on a sharded collection must contain an exact match on _id (and have the collection default collation) or contain the shard key (and have the simple collation). Update request: { q: { uid: { $in: [ 157140.0, 157141.0 ] } }, u: { $set: { a.d: 1.0 } }, multi: false, upsert: false }, shard key pattern: { uid: 1 }"
Теги:

1 ответ

0
db.collection.find().forEach( function(doc) {
 do {
    db.collection.update({_id: doc._id,{$elemMatch_{user__test_,{$ne:"new_avatar.jpg"}}}},{$set:{"comments.$.avatar":"new_avatar.jpg"}});
 } while (db.getPrevError().n != 0);
})

Ещё вопросы

Сообщество Overcoder
Наверх
Меню