sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur frågar jag bara dokument med den senaste tidsstämpeln från en grupp?

Du blandar några metoder här när du kan göra allt i aggregeringspipelinen. Annars är det bara att få stegen i rätt ordning:

db.collection.aggregate([
    {$sort: { createdOn: -1 }},
    {$group: { _id: "$itemId", 
        createdOn: {$first: "$createdOn"},
        field1: {$first: "$field1" },
        field2: {$first: "$field2" }
    }},
    {$match: { field1: "foo" }}
])

Så sortera först efter de senaste dokumenten. Gruppera på itemId ( Beställningen kommer att bibehållas för $first ), och filtrera sedan med $match om du måste. Men dina grupperade dokument kommer att vara de senaste.



  1. Hur man klonar/kopierar en databas i Azure Cosmos DB

  2. MongoDB och upsert-problem

  3. Hur ansluter man till MongoDB som körs i Docker-behållare?

  4. Effektivt sätt gör om inställningen medlemsuppdatering