mongodb';文件';PHP中的变量定义

mongodb';文件';PHP中的变量定义,php,codeigniter,mongodb,mongodb-php,Php,Codeigniter,Mongodb,Mongodb Php,我正在使用Codeigniter和PHP。 我们可以为mongodb查询定义空数组,如下所示: $db->user->insert(array('report'=> array())); $a = array(); $db->user->insert(array('report'=> $a)); 如何在PHP中为mongodb定义空的文档(数据类型)? 在这里我知道,我可以在使用另一个运行时查询(使用$set或其他)时创建文档变量。但是当我插入时,我需要创

我正在使用CodeigniterPHP。 我们可以为mongodb查询定义空数组,如下所示:

$db->user->insert(array('report'=> array()));
$a = array();
$db->user->insert(array('report'=> $a));
如何在PHP中为mongodb定义空的
文档
(数据类型)?

在这里我知道,我可以在使用另一个运行时查询(使用$set或其他)时创建
文档
变量。但是当我插入
时,我需要创建
文档
变量

如果我像下面这样创建文档变量

$db->user->insert(array('report'=> array()));
$a = array();
$db->user->insert(array('report'=> $a));
以下代码不起作用

$db->user->update(
    array('user' => $user ), 
    array('$set' => array(
        'report.' . $number => 
             array('id'=>$number, 'on' => time(), 'status'=> 0)
    )));

这里,
$number
是字符串变量。

MongoDB PHP驱动程序支持发送空对象(它的末尾没有验证以确保发送有价值的内容)要保存,但在不知道刚刚保存的对象的
\u id
的情况下,检测到此保存对象的方法无效,可以执行以下操作:

$a = array();
$db->user->insert($a);
var_dump($a['_id']);
因为如果传递了一个变量,MongoDB的insert函数将修改(通过引用)原始变量并向其添加
\u id
字段


但是,不能将“空”对象(没有不可变的
\u id
的对象)保存到正常集合中。这当然与封顶收藏不同。

最后,我的问题没有答案。我找了很多地方。因此,我们可以在使用另一个运行时查询(使用$set或else)时创建
文档
变量。谢谢。

您的意思是文档中名为
document
的字段吗?@Sammaye
document
是MongodBW中的数据库字段类型,如果像示例中那样传递空数组(),会发生什么情况?这应该可以工作并存储一个空文档。@SaschaM78是吗?你有解释文档字段类型的页面吗?@SaschaM78:实际上是BSON文档支持的类型列表。那又怎样?你所说的括号是什么意思?@KarSho Yea所以你在编辑的最后一行看到3个括号的地方应该只有两个。你能给我们看一下你的更新内容的示例文档吗?你能告诉我们
$user
是什么吗?你确定这真的找到了医生吗?