MongoDB не съхранявайте данните като JSON.
Документът, който поставихте, изглежда е копиране и поставяне от обвивката. Това също не е JSON формат. Този формат се нарича разширен JSON - и така черупката на MongoDB представя данните в javascript. Повечето примери на уебсайта на MongoDB също използват този формат, тъй като е прост и лесен. Така че вместо да има десетки различни изходни формати (за всеки езиков драйвер), официалните документации на MongoDB използват обвивката за демонстриране на функционалност и изход.
Действителният основен формат се нарича двоичен JSON (BSON). Никога няма да видите този формат и никога няма да взаимодействате с него.
Когато взаимодействате с MongoDB в PHP, всичко, което трябва да знаете, е, че запазвате PHP масив. Данните, върнати от MongoDB, също са PHP масив. Подлежащият дисков формат не е подходящ.
Никога не трябва да извиквате json_encode() или json_decode().
$collection->find($query)
метод връща обект, наречен MongoCursor. Трябва да преминете през този обект, за да получите резултатите, които ще бъдат PHP масив.
foreach($collection->find($query) as $result) {
var_dump($result);
}
Този примерен код ще var_dump() един резултат наведнъж. Този result
се нарича "MongoDB документ" и е подобен на "MySQL ред". Точно както при MySQL, не е нужно да знаете какъв е основният протокол или какъв е основният формат на диска - това не ви засяга.
Горещо ви препоръчвам да прочетете урока за MongoDB PHP драйвер:http://us2. php.net/manual/en/mongo.tutorial.php
Това трябва да обясни концепцията малко по-добре, заедно с това как работи драйверът :)