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

mongodb-最も近い整数値を持つドキュメントを検索します

    興味深い問題。 1つのクエリで実行できるかどうかはわかりませんが、2つのクエリで実行できます:

    var x = 1; // given integer
    closestBelow = db.test.find({ratio: {$lte: x}}).sort({ratio: -1}).limit(1);
    closestAbove = db.test.find({ratio: {$gt: x}}).sort({ratio: 1}).limit(1);
    

    次に、2つのドキュメントのどちらにratioがあるかを確認します。 ターゲット整数に最も近い。

    MongoDB3.2アップデート

    3.2リリースでは、$absのサポートが追加されています これを単一のaggregateで実行できるようにする絶対値集計演算子 クエリ:

    var x = 1;
    db.test.aggregate([
        // Project a diff field that's the absolute difference along with the original doc.
        {$project: {diff: {$abs: {$subtract: [x, '$ratio']}}, doc: '$$ROOT'}},
        // Order the docs by diff
        {$sort: {diff: 1}},
        // Take the first one
        {$limit: 1}
    ])
    


    1. 運用データベースのアクセシビリティ

    2. Railsアプリでmongoidを使用したMongoクエリにより、カーソルタイムアウトエラーが発生します

    3. Redisで偏ったハッシュスロットを修正する方法

    4. レスキュー:接続が拒否されました-localhost:6379でRedisに接続できません