#php #mongodb
#php #mongodb
Вопрос:
У меня есть следующий массив, полученный из Mongo:
array(10) {
["_id"]=>
object(MongoId)#25 (1) {
["$id"]=>
string(24) "4ea062b9271e012227000000"
}
["email"]=>
string(18) "your@email.tld"
["group"]=>
int(1)
["last_login"]=>
int(1319299712)
["login_hash"]=>
string(40) "a67b25998576d454c7a422908592ed338561a527"
["password"]=>
string(44) "EK341WsJRo1vUB9vGYWfogfzstZsIg77/oRqlpeQH I="
["profile_fields"]=>
string(6) "a:0:{}"
["username"]=>
string(7) "loremipsum"
[0]=>
string(10) "login_hash"
[1]=>
string(40) "9de77184cb57625f834879b3cbcdf0b860d842c1"
}
Выполняя тесты, я добавил в этот документ неверную информацию, последние 2 ключа массива: 0 и 1. Мой вопрос в том, как я могу удалить эту информацию или другую метку с помощью Mongo и используя PHP?
Заранее благодарю вас!
Ответ №1:
Не знаю, как с этим обращаться в php, но вы можете использовать модификатор для удаления одного поля: $unset . См. http://www.mongodb.org/display/DOCS/Updating
Ответ №2:
В этом случае вам нужна точная команда:
db.collection.update(
{"_id": ObjectID("4ea062b9271e012227000000")},
{"$unset": [0: true, 1: true]}
);
В php это было бы похоже:
$mongoClient = new MongoClient();
$db = $mongoClient->selectDB('your_DB_name');
$collection = new MongoCollection($db, 'your_collection_name');
$collection->update(
['_id' => new MongoId("4ea062b9271e012227000000")],
['$unset' => [
0 => true,
1 => true
]]
);