एकत्रीकरण ढांचे का उपयोग करें। $ अपने लॉग सरणी को खोलें और जो भी शर्त आप चाहते हैं उसे लागू करें $ सॉर्ट $ मैच, छोड़ें। या आप $ प्रोजेक्ट चरण में $ फ़िल्टर की जांच कर सकते हैं, कृपया अपना अपेक्षित आउटपुट पोस्ट करें मैं अपना हाथ आज़माउंगा
db.collection.aggregate([{"$unwind" : "$logs"},
{$match : {"$and" : [{"logs.date" :{$gte : fromDate} },
{"logs.date" :{"$lte" : toDate}}]}},
{"$group" : "_id" : "_id",
"logs" : {"$push" : "$logs"},
"names" :{"$first" : "$name"}
}])
या आप $filter का उपयोग कर सकते हैं यदि mongodb 3.2 का उपयोग कर रहे हैं
{
$filter: {
input: logs,
as: "num",
cond: { $and: [
{ $gte: [ "$$num.date", fromDate ] },
{ $lte: [ "$$num.date", toDate ] }
] }
}
}