1

これはクエリする私の構文です

http://pastebin.com/q05EBSUJ

結果のエラーが発生しました

[Tue Nov 27 13:05:16 2012] [error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'MongoCursorException' with message 'invalid operator: $or' in /var/www/

私はグーグルで試してみましたが、mongodbバージョンで間違っているかどうかはよくわかりません。

私のシンタックは間違っていますか?または私のmongodbバージョンが間違っています、私のmongodbバージョン= 2.2.1?

ありがとう

4

4 に答える 4

0

$or演算子を使用して埋め込みドキュメントからフィールドを選択する次の例を考えてみましょう。

$collection->find([
    // $or (array)
    '$or' => [
        ['key 1' => 'value 1'], // (array)
        ['key 2' => 'value 2']  // (array)
    ]
]);

試す:

$result = $mo->find([
    // $or (array)
    '$or'   => [
        ['user_id'  => $this->session->userdata('user_id')], // (array)
        ['to'       => $this->session->userdata('user_id')]  // (array)
    ],
    'node'  => 'stream',
])->sort(['time' => -1])->limit(5);

参考文献

于 2012-12-13T04:08:00.093 に答える
0

$or配列の深さの余分なレイヤーがあります。

試す:

$result = 
    $mo->find(array(
          "node" => "stream",
          "$or"  => array("user_id" => $this->session->userdata('user_id'),
                               "to" => $this->session->userdata('user_id'))
       ->limit(5)
       ->sort(array("time" => -1));
于 2012-11-27T06:27:43.857 に答える
0

@tpaeは機能しません。

私は自分の解決策を持っています。

    $result = $mo->find(
      array('$or' => array(
        array(
          'node' => 'stream',
          'user_id' => $this->session->userdata('user_id')
        ),
        array(
          'node' => 'stream',
          'to' => $this->session->userdata('user_id')
        )
      )
    )
  )->sort(array('time' => -1))->limit(5);  

とその働き。

于 2012-11-27T06:39:03.917 に答える
0

次のコードを使用

$result = $mo->find(
      array(
        'node' => 'stream',
         array('or' => array(
          'user_id' => $this->session->userdata('user_id'),
          'to' => $this->session->userdata('user_id')
         )
      )
   )
 )->sort(array('time' => -1))->limit(5);

それ以外の

$result = $mo->find(
      array(
        'node' => 'stream',
         array('$or' => array(
          'user_id' => $this->session->userdata('user_id'),
          'to' => $this->session->userdata('user_id')
         )
      )
   )
 )->sort(array('time' => -1))->limit(5);
于 2012-11-27T06:45:55.760 に答える