У меня есть данные, как следующее:Обновление не работает для нулевых значений?
{
title: "whatever"
answers:[
{
"question_id" : 11294,
"sub_id" : null,
"_id" : ObjectId("52f90f68bab16dd8595d453e"),
"values" : [
"Po "
]
}
]
}
И я пытаюсь обновить его следующим образом:
db.participants.update(
{
"answers.question_id": 11294,
"answers.sub_id": null
},
{
$set:
{
"answers.$.question": 'test'
}
},
false,
true
);
Но он не работает (запись не обновляется). Если есть значения для sub_id
и answers.sub_id
, то обновление работает нормально. Как я могу написать это обновление, чтобы оно обновляло записи, когда они имеют значение для answers.sub_id
и когда answers.sub_id
имеет значение null?
UPDATE:
Я создаю этот показатель прямо перед тем, как выполнить запрос, а затем удалить его после:
db.participants.ensureIndex({"answers.question_id": 1, "answers.sub_id": 1});
Запрос выглядит корректно для меня. Также протестировали его на моей машине (mongodb 2.5.4). – mnemosyn
oh weird .. и вы определенно протестированы с нулевыми значениями для 'sub_id'? –
Похоже, я бегу '2.4.1' Интересно, будет ли это иметь какое-то значение? –