3

PHPでCodeigniterを使用しています。次のように、 mongodbクエリの空の配列を定義できます。

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

documentPHP で mongodb の空 (データ型) を定義する方法?

documentここで、別の実行時クエリを使用するときに変数を作成できることを知っています ( $setまたは else を使用)。しかし、 idocumentのときに変数を作成する必要があります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

_idMongoDB PHPドライバーは、保存する空のオブジェクトの送信をサポートしています(値のあるものを送信することを確認するための検証はありません)が、オブジェクトを保存するこの方法は、保存したばかりのオブジェクトを知らなくても役に立たないことを検出しますできるよ:

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

変数が渡された場合、MongoDBの挿入関数は(参照により)元の変数を変更し、それに_idフィールドを追加します。

ただし、「空の」オブジェクト(不変のないオブジェクト_id)を通常のコレクションに保存することはできません。もちろん、これは上限付きコレクションなどでは異なります。

于 2013-01-03T11:04:00.613 に答える