3

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

$db->user->insert(array('report'=> array()));

我如何document在 PHP 中为 mongodb 定义空(数据类型)?

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

如果我创建如下文档变量,

$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是字符串变量。

4

2 回答 2

4

最后没办法回答我的问题。我搜索了很多方式。因此,我们可以document在使用另一个运行时查询(使用$set或其他方式)时创建变量。谢谢。

于 2013-01-16T13:17:03.283 回答
0

MongoDB PHP 驱动程序支持发送要保存的空对象(它最终没有验证以确保您发送有价值的东西),但检测到这种保存对象的方法在不知道_id您刚刚保存的对象的情况下将是无用的你可以做:

$a = array();
$db->user->insert($a);
var_dump($a['_id']);

因为如果传递一个变量,MongoDB 的插入函数将修改(通过引用)原始变量并将_id字段添加到它。

但是,您不能将“空”对象(没有 immutable 的对象_id)保存到普通集合中。这对于封顶集合之类的东西当然有所不同。

于 2013-01-03T11:04:00.613 回答