Проблема вроде пустяковая, но нигде не могу найти реализацию...
Имеем коллекцию документов, в документах есть вложенные значения.
db.test.findOne({"author.id":3}) - всё норм находит.
Как проделать тоже самое в php ?
Пробовал так:
$collection->findOne(array('author' => array('id' => 3)));
нифига не выходит, получаем null... :(
Спустя 32 минуты, 37 секунд (23.10.2011 - 10:16) Invis1ble написал(а):
Решил попробовать заюзать костыль:
на что пых мне ответил
$collection->findOne(bson_decode('{"author.id":3}'));
на что пых мне ответил
Цитата |
type 0x74 not supported: 7b 22 61 75 74 68 6f 72 2e 69 64 22 3a 33 7d 00 |
<_<
Спустя 3 минуты, 35 секунд (23.10.2011 - 10:20) Invis1ble написал(а):
Вобщем только что попробовал (а вдруг ?)
Все получилось. Странно, однако :)
$collection->findOne(array('author.id' => 3));
Все получилось. Странно, однако :)
Спустя 45 секунд (23.10.2011 - 10:20) alex12060 написал(а):
Invis1ble
Может так?
Может так?
$collection->findOne(array('author' => array('_id' => 3)));
Спустя 10 минут, 13 секунд (23.10.2011 - 10:31) Invis1ble написал(а):
alex12060
не, это не то _id - это обычно объект MongoId (если явно не указали при создании документа иное значение)
не, это не то _id - это обычно объект MongoId (если явно не указали при создании документа иное значение)
Спустя 1 минута, 43 секунды (23.10.2011 - 10:32) alex12060 написал(а):
Invis1ble
А я думал, что это инкрементное поле
А я думал, что это инкрементное поле
Спустя 2 минуты, 18 секунд (23.10.2011 - 10:35) Invis1ble написал(а):
alex12060
это уникальный ключ, создаваемый MongoDB при добавлении нового документа в коллекцию.
Что-то вроде primary key в MySQL, только имеет вид вроде 4ea24e2f8f04792105000000
это уникальный ключ, создаваемый MongoDB при добавлении нового документа в коллекцию.
Что-то вроде primary key в MySQL, только имеет вид вроде 4ea24e2f8f04792105000000
Спустя 12 часов, 10 минут, 15 секунд (23.10.2011 - 22:45) kirik написал(а):
Invis1ble
Не уверен, но попробуй вот так:
или так:
или... так (оба варианта):
Не уверен, но попробуй вот так:
$collection->findOne(array('$all' => array(array('author' => array('id' => 3)))));
или так:
$collection->find(array('$all' => array(array('author' => array('id' => 3)))));
или... так (оба варианта):
array('$all' => array('author' => array('id' => 3)))
Спустя 29 минут, 47 секунд (23.10.2011 - 23:15) Семён написал(а):
Если всё правильно понял, то:
$collection->findOne(array('id' => 3),array("author"));
Спустя 8 часов, 4 секунды (24.10.2011 - 07:15) Invis1ble написал(а):
kirik
Семён
Это все не то. Хотя я и проверил на всякий пожарный. Собственно, я уже написал решение тут
Семён
Это все не то. Хотя я и проверил на всякий пожарный. Собственно, я уже написал решение тут
_____________
Профессиональная разработка на заказ
Я на GitHub | второй профиль