MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

MongoDB - Вземете най-новата стойност на ненулево поле от документи с клеймо за време

Можете да опитате това:

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. Какъв е правилният начин за индексиране в MongoDB, когато съществува голяма комбинация от полета

  2. Скоростта на заявките на CosmosDb е голяма с insertMany

  3. mongoose заявка:намиране на обект по id в масив

  4. Mongodb upsert вграден документ

  5. променлива с mongodb точка