1

MongoDBの「カスタマーサービス」ドキュメントに最適なレイアウトは何でしょうか。こんなことを考えましたが、よくわかりません。

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

それが最善の方法ですか?もしそうなら、PHPでreplies配列を更新するにはどうすればよいですか?過去の返信を上書きせずに、返信配列に挿入する必要があります。

これを結びましたが、次のエラーが発生しました


致命的なエラー:キャッチされない例外「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);
4

1 に答える 1

2

$push2行目のコマンドは、二重引用符(')ではなく一重引用符( )で囲む必要があります'"

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

二重引用符を使用すると、PHPは変数として扱わ$pushれ、変数の値に置き換えられます。

于 2012-07-28T11:50:05.023 に答える