Помогите решить такую проблему: есть записи данных пользователей в базе mongo сорта (_id, username, fullname, password, email). Username и password — обязательные поля, это значит что в базе они будут обязательно заполнены. Но при этом fullname и email могут быть пустыми (т.е. в базе в конкретных записях их может не быть). Есть форма редактирования такого пользователя. На этой форме сразу заполнено поле username (оно берется текущее из базы), и, если они есть в базе, поля fullname и email. На этой форме пользователь может поменять значение любого(!) поля. Поле password должно остаться пустым, если пользователь не хочет редактировать текущий пароль. Как обновить (обновляю по _id) запись пользователя в базе таким образом, чтобы поменялись (добавились в базу) только заполненные поля, а нетронутые остались на месте (например, пароль остался прежним, или поля email у этого пользователя пустое). Поле username уникально в базе.
azaliya
26.03.2012 07:46 QIP
Do you really want to delete ?
в питоне так
post = mycollection.find_one({"_id":mongo_id})
post['newfield'] = "abc"
mycollection.save(post)
возможно есть что то подобное и в пхп
В чём проблема-то?
var user = db.users.find({username: 'user1'});
user.fullname = 'blablable';
...
user.save();
Такая конструкция в php не работает.
Да наверно ж есть, но то ли я неправильно понимаю команду update вообще, то ли я снова сделала что-то не так.
потому что это js, ваш кэп
Во-первых я поставила тег php (наверно это о чем-то говорит), во-вторых повторяю — подобное в php не работает.
нет слов
Нет слов, не пиши комментарий. Я попросила помочь, а не фыркать. Перепробовала множество средств, возможно что-то не учла.
http://habrahabr.ru/post/103699/
$criteria = array(
'name' => 'eggs',
);
$doc = $collection→findOne($criteria);
// update document with new values
// save back to collection
$doc['name'] = 'apples';
$doc['quantity'] = 35;
$doc['note'] = 'green apples taste sooooo good!';
$collection→save($doc);
вот только гугл видимо не попробовала
Пробовала, но то, что написано, у меня все равно не работает. О_о Буду искать причину где-то еще. Спасибо за помощь!
Этот код работает в монговском шелле. Я показал принцип. Перевести это на похапе уже твоя задача. На похапе я не пишу принципиально, поэтому с тамошним монговским api не знаком.