PHP MongoDB - 将数组保留为数组而不是对象

时间:2014-02-10 10:34:36

标签: php mongodb

这是我插入mongodb的对象。

{
    '_array': [1,2,3],
    '_ass_array': [{'num': 1, 'name': 'One'}], 
    '_obj': {'key': 'val'}
}

如果我在终端上查询,我可以像插入一样。但是在通过PHP的MongoCollection::findOne()/ MongoCollection::find()进行查询时,我得到了以下格式。

{
    '_array': { 0: 1, 1: 2, 2: 3},
    '_ass_array': {
       0: {'num': 1, 'name': 'One'}
     }, 
    '_obj': {'key': 'val'}
}

有什么方法可以将数组作为数组和对象作为对象?如果需要,我可以用完整的代码更新问题。

1 个答案:

答案 0 :(得分:0)

对于同样的数据,这对我有用。只是想知道自从帖子中的JSON语法以来你是否在序列化中做了不同的事情。正如预期的那样$data是一个PHP数组。

<?php

$dbhost = 'localhost';
$dbname = 'test';

$m = new Mongo("mongodb://$dbhost");
$db = $m->$dbname;

$col = $db->data;

$data = $col->findOne();

echo json_encode( $data ) . "\n";

?>

您对结果的了解有点吸引人,因为这里的各种人都有他们的MongoDB文档格式。