0

私はmongodbの初心者です。mongo shell と php mongo driver には使い方の違いがあると思います。

mongo shell では複数の基準で数えることができます。例えば:

db.coll.count( { _id:ObjectId('4fb27b9c876b88e53d000000'), 
                 'items.title':'example' } );

しかし、php mongo ドライバーで同じカウントを行うことはできません。私はこれを試しましたが、0を返します。

$coll->count( array('_id'=>new MongoID('4fb27b9c876b88e53d000000'), 
                    'items.title'=>'example' ) );

ただし、find() を使用してから count() を使用すると、同じカウント結果が得られます。

$coll->find( array('_id'=>new MongoID('4fb27b9c876b88e53d000000'), 
                   'items.title'=>'example' ) ).count();

私は欲しいものを手に入れましたが、チェーンの方法は非効率的かもしれないと思います。私が間違っている?

複数の基準でどのようにカウントできますか?

4

2 に答える 2

3

1 つのコード サンプルは、1,000 語に匹敵します。見て:

% mongo
MongoDB shell version: 2.1.1
connecting to: test
> db.foo.count
function (x) {
    return this.find(x).count();
}

この回答はお役に立ちましたか?:)

于 2012-05-17T05:55:45.473 に答える
0

最初に find() を使用し、次に count() を使用する必要があります

db.foo.count() -- will return 0, because db.foo it is only accessing the collection

db.foo.find($where).count() --- will return the number of documents in the collection

これがその方法です。

于 2012-05-21T14:48:17.697 に答える