sql >> Databáze >  >> NoSQL >> MongoDB

MongoDB – Získejte nejnovější nenulovou hodnotu pole z dokumentů s časovým razítkem

Můžete zkusit toto:

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. Mongoose Query:Najděte prvek uvnitř pole

  2. Proměnné prostředí aplikace Meteor

  3. PyMongo Aggregate, jak získat statistiky provádění

  4. Jak nastavit ovladač MongoDB na XAMPP