С помощью PHP мне нужно обновить мой контент монго. Моя структура коллекции монго приведена ниже
{
"_id" :"5",
"rows": [
{ "id" : "aab", "value":100},
{ "id" : "dsc", "value":400},
{ "id" : "abc", "value":200},
{ "id" : "xyz", "value":300}
]
}
и скрипт для обновления вышеупомянутой коллекции работает нормально в Mongo Shell
db.Collection.find({"_id" : "5"}).forEach(function(data) {
for (var i = 0; i < data.rows.length; i++) {
db.VizSpreadsheet.update({
"_id": data._id,
"rows.id": data.rows[i].id
}, {
"$set": {
"rows.$.status": 1
}
}, true, false);
}
});
Я получаю сообщение об ошибке 17287 «Can canicalical query: …», когда тот же код используется с командой db-> execute (). Кто-нибудь может мне помочь выполнить этот код из PHP
Вы написали Collrction вместо коллекции.
db.Collrction.find(
должно быть
db.Collection.find(
Кроме того, я помню mongodb PHP, использующий массивы, а не строки JSON. Попробуйте использовать функцию json_decode () в ваших текущих запросах, чтобы увидеть, работает ли она
Других решений пока нет …