MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

mongodb - Temukan dokumen dengan nilai integer terdekat

Masalah yang menarik. Saya tidak tahu apakah Anda dapat melakukannya dalam satu kueri, tetapi Anda dapat melakukannya dalam dua:

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);

Kemudian Anda cukup memeriksa mana dari dua dokumen yang memiliki ratio terdekat dengan bilangan bulat target.

Pembaruan MongoDB 3.2

Rilis 3.2 menambahkan dukungan untuk $abs operator agregasi nilai absolut yang sekarang memungkinkan ini dilakukan dalam satu aggregate permintaan:

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Luwak Mencoba membuka koneksi yang tidak tertutup

  2. terlalu banyak file yang terbuka di server mgo go

  3. Kelompokkan menurut interval tanggal

  4. Cara mengizinkan semua host ke set replika di mongodb

  5. Dapatkan catatan terbaru dari koleksi mongodb