0

そのため、Webサーバー上にphpスクリプトがあり、JSONオブジェクトPOSTを介してmongoDBクエリをリッスンし、別のページを作成してphpサービスにクエリを送信しています。:などのすべての標準クエリ {"field1":"2342342","field2":"234234"}が送信され、正しい結果が返されます。

ただし、値の範囲を含むクエリを送信しようとすると、何も返されません。

{"field2":"1234","date" : {$gte : "2013-02-11"},"date" : {$lte : "2013-02-11"}}

コマンドラインに移動して、次のコマンドを呼び出すことができます。

db.collection.find({"field2":"1234","date" : {$gte : "2013-02-11"},"date" : {$lte : "2013-02-11"}} ) 

これにより、期待どおりの結果が返されます。明らかに、私が完全には理解していないことが起こっています。

検索を行うPHPコマンド:

$c_collection->find(json_decode($request));

どんな助けでも大歓迎です。

4

1 に答える 1

1

重複する要素名を使用してデータベースを検索しようとしています。MongoDb は、この検索の実行中に次のようなエラーを発行します。

Duplicate element name 'date'.

範囲を同じブロック内に配置する必要があります。例えば:

{
    'date': {
        $gte:"datehere",
        $lte:"datehere"
    }
}

PHP の場合:

$criteria = array('date' => array('$gte' => 'datehere', '$lte' => 'datehere'));

次に、そのjsonを基準として使用します。

また、データベースに渡す前に基準をデコードしているのはなぜですか? メソッドは配列を問題なく受け入れることができます。

于 2013-02-28T22:05:41.147 に答える