0

私はMongoDB 2.4.4を使い始めましたが、phpのフィールドでいくつかの投稿をクエリするという非常に苛立たしいケースがあります。

mongoshell では、db.posts.find({page_id:345671} (たとえば) で 293 カウントのドキュメントが得られます。

同等のphp:

$connection = new Mongo('mongodb://localhost:27017');
$db = connection->selectDB('post_db');
$posts = $db->posts->find(array('page_id' => 345671));

常にゼロを返しますが、検索配列が空の場合は、コレクション全体を返します。

また、->explain() と .explain() は異なるパラメーターを与えてくれました。

私は何を間違っていますか?シャーディングもインデックスもありません。テスト データがいくつかあるだけです。私はまだ始まったばかりです。

4

1 に答える 1

0

解決済み、ヴィタリー・ムミノフに感謝! 「それについてはよくわかりませんが、ini_set('mongo.native_long', 1); を設定するか、数値を MongoInt64 クラスにラップしてみてください」

解決策は、数値をMongoInt64にラップすることです!

于 2013-07-24T14:43:20.243 に答える