Сохранение ключей массива после использования слайса в MongoDB с PHP - PullRequest
1 голос
/ 13 марта 2012

У меня есть объект MongoDB следующей структуры:

{
"_id": ObjectId("4f5ed7d33c9059a00d000002"),
"data":
{
"0": "data1",
"1": "data2",
"2": "data3",
"3": "data4",
}
}

Я использую следующий код для получения нарезанного результата:

$obj1 = $collection->findOne(array('_id' => new MongoId('4f5ed7d33c9059a00d000002')),array('_id'=>1,'data'=>array('$slice' =>2 )));

Но результат этого запроса не сохраняет индексы массива данных массива.

1 Ответ

1 голос
/ 13 марта 2012

Вы можете использовать оператор $slice для извлечения поддиапазона элементов в массиве .

То, что вы пытаетесь нарезать, это документ (поддокумент). Массивы используют фиксированные позиции для элементов, [0 .. (цифры-1)], поэтому нет возможности сохранить «индексы». К сожалению, php-эквивалент документа является ассоциативным массивом , поэтому возникает путаница.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...