sql >> Database >  >> NoSQL >> MongoDB

mangoest som een ​​waarde op voor alle documenten

Probeer het met het aggregatieraamwerk met behulp van de $match en $group operators, d.w.z. zoiets als dit

db.tickets.aggregate([
    { $match: { time: {$gte: a, $lte: tomorrow} } },
    { $group: { _id: null, amount: { $sum: "$amount" } } }
])

bijvoorbeeld met testgegevens zoals deze

/* 1 */
{
    "_id" : ObjectId("57e0ed40828913a99c2ceb46"),
    "time" : 20,
    "amount" : 40
}

/* 2 */
{
    "_id" : ObjectId("57e0ed40828913a99c2ceb47"),
    "time" : 40,
    "amount" : 20
}

/* 3 */
{
    "_id" : ObjectId("57e0ed40828913a99c2ceb48"),
    "time" : 50,
    "amount" : 10
}

/* 4 */
{
    "_id" : ObjectId("57e0ed40828913a99c2ceb49"),
    "time" : 10,
    "amount" : 5
}

een pijplijn (met een dummy-tijdbereik) zoals de volgende

db.tickets.aggregate([
    { $match: { time: {$gte: 20, $lte: 40} } },
    { $group: { _id: null, amount: { $sum: "$amount" } } }
])

zou je een resultaat als dit geven

/* 1 */
{
    "_id" : null,
    "amount" : 60
}




  1. MongoDB &Meteor - Query om in geneste array te pushen werkt niet, geen fout gegenereerd

  2. Twee knooppunten MongoDB-replicaset zonder arbiter

  3. Is er een manier om te voorkomen dat MongoDB meervoudsvormen toevoegt aan collectienamen?

  4. Index laten vallen met Mongoose