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

Jak se dotazovat pouze na dokumenty s nejnovějším časovým razítkem ze skupiny?

Zde mícháte několik metod, když můžete dělat všechno v agregačním potrubí. Jinak jde jen o to, aby vaše kroky byly ve správném pořadí:

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

Nejprve tedy seřaďte nejnovější dokumenty. Seskupit podle itemId ( objednávka bude zachována pro $first ) a poté filtrujte pomocí $match, pokud musíte. Vaše seskupené dokumenty však budou nejnovější.



  1. PowerShell není kompatibilní s metodami ovladače MongoDB C#?

  2. Má Mongo DB režim In-Memory?

  3. nelze převést z 'MongoDB.Driver.IMongoCollection<>' na 'System.Collections.Generic.IEnumerable<>'

  4. Klonování instance MongoDB nebo sady replik