sql >> Databasteknik >  >> NoSQL >> MongoDB

hur man frågar efter data inuti en array av samlingen med mongoose

använd aggregeringsramverk.$linda upp din loggarray och använd vilket villkor du vill $sort $match,skip.eller så kan du kontrollera $filter i $projektstadiet, snälla posta din förväntade produktion. Jag ska försöka mig

db.collection.aggregate([{"$unwind" : "$logs"},
{$match : {"$and" :  [{"logs.date" :{$gte : fromDate} },
{"logs.date" :{"$lte" : toDate}}]}},
{"$group" : "_id" : "_id",
"logs" : {"$push" : "$logs"},
"names" :{"$first" : "$name"}
}])

Eller så kan du använda $filter om du använder mongodb 3.2

{
  $filter: {
     input: logs,
     as: "num",
     cond: { $and: [
        { $gte: [ "$$num.date", fromDate ] },
        { $lte: [ "$$num.date", toDate ] }
      ] }
  }
}



  1. kapslat undantag är redis.clients.jedis.exceptions.JedisConnectionException:Kunde inte hämta en resurs från poolen

  2. Använda $push inom Array i mongoose

  3. JavaScript-designmönster -- Hanterar oönskad asynkroni

  4. Fråga MongoDB-sökning endast under specifika tider