建议的MongoDB文档结构


Suggested MongoDB document structure

我想知道MongoDB中"客户服务"文档的最佳布局是什么。我有这样的想法,但不确定。

{
"userid":(MONGODBUSERID),
"subject":"subjectofissue",
"issue":"issue that the user has",
"replies":[{
   "whoreplied":"staff/customer",
   "uid":"userid of replier",
   "msg":"msg of reply"
}]
}

这是最好的方法吗?如果是,我该如何用PHP更新回复数组?我需要在不覆盖过去回复的情况下插入回复数组。

我追平了这个,但得到了以下错误


致命错误:未捕获异常"MongoException",消息为"不允许使用零长度密钥,您是否使用了带双引号的$?"在/home/MYSITE/public_html/core.php中:347堆栈跟踪:

我的代码

$array = array(
    "$push" => array(
        "replies" => array(
            "whoreplied" => "user",
            "uid" => new MongoId($this->data['uid']), 
            "msg" => $this->data['issue']
        )
     )
);
$collection->update(array(
    "_id" => new MongoId($this->data['customerID'])
), $array);

您需要在第2行的$push命令周围使用单引号('),而不是双引号('")。

$array = array(
    '$push' => array(
        "replies" => array(
            "whoreplied" => "user",
            "uid" => new MongoId($this->data['uid']), 
            "msg" => $this->data['issue']
        )
     )
);

双引号会导致PHP将$push视为一个变量,并尝试用该变量的值替换它。