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

MongoDB - Dapatkan nilai bidang non-null terbaru dari dokumen dengan stempel waktu

Anda dapat mencoba ini:

db.getCollection('test').aggregate([
    //Sort
    {$sort: { datetime: -1 }},
    //Add fields to an array
    {$group: {
        "_id": null,
        "field1": { $push: "$field1" },
        "field2": { $push: "$field2" },
    }},

    //Filter and do not include null values
    {$project: {
        "field1notNull" : {
              $filter: {
               input: "$field1",
               as: "f",
               cond: { $ne: [ "$$f", null ] }
            }
          },
        "field2notNull" : {
              $filter: {
               input: "$field2",
               as: "f",
               cond: { $ne: [ "$$f", null ] }
            }
          }
        }
    },
    //Get the first values of each
    {$project: {
        "_id": null,
        "field1": {$arrayElemAt: ["$field1notNull", 0]},
        "field2": {$arrayElemAt: ["$field2notNull", 0]} 
    }}
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Menggunakan indeks Geospasial MongoDB dengan data 3d

  2. Apakah praktik yang buruk menggunakan Mongo ObjectId sebagai id pengguna?

  3. Penyimpanan untuk jutaan gambar

  4. Bagaimana Cara Mencocokkan Koleksi yang Digabung Menggunakan Laravel dan MongoDB?

  5. Metode instance luwak `ini` tidak merujuk ke model