sql >> データベース >  >> NoSQL >> MongoDB

mongodb会話システム

    高度なMongoDBクエリを実行する方法については、次のページをご覧ください: http:// www .mongodb.org / display / DOCS / Advanced + Queries

    $andを組み合わせて使用​​できます および$in 必要なものを取得するための演算子。 mongoシェルを使用すると、クエリは次のようになります。

    db.yourCollectionName.find({$and: {from: {$in: ["toUser", "loggedOnUser"]}}, {to: {$in: ["toUser", "loggedOnUser"]}}})
    

    これでも同等の効果が得られると思います:

    db.yourCollectionName.find({$and: {$or: [{from: "toUser"}, {to: "toUser"}]}}, {$or: [{from: "loggedOnUser"}, {to: "loggedOnUser"}]}}})
    

    そこから、上記を使用している言語/ DSLに変換し、日付で並べ替えるだけです。

    コードでは、($and => array())は必要ありません。 見つけようとしている各オブジェクトをラップします。それらを削除すると、次のようになります:

    $cursor = $collection->find(
        array('$or' => 
            array(
                array("from"=>"$profile", "to"=>"$loggeduser"),
                array("to"=>"$profile", "from"=>"$loggeduser")
            )
        )
    ) ->limit(50)->sort(array('date' => -1));
    



    1. マングース-基準によるサブドキュメントの検索

    2. JavaMongodbnumberlongクエリ

    3. Redis/プレフィックス付きのredisからすべてのキーと値を取得

    4. MongoDBの逆配列フィールド