आवश्यकता है: मैं उन सभी ग्राहकों का संग्रह चाहता हूं जो did not perform the "View" event in last 5 hours
हैं।मोंगो डीबी: उन सभी को छोड़कर सभी दस्तावेज खोजें जहां दिनांक सीमा शर्त
डाटा:
{
name: "Sheldon",
events: [
{
event: "View",
timestamp: "timestamp equivalent to 10 hours ago"
},
{
event: "Some other event",
timestamp: "timestamp equivalent to 8 hours ago"
},
{
event: "View",
timestamp: "timestamp equivalent to 2 hours ago"
}
]
},
{
name: "Leonard",
events: [
{
event: "View",
timestamp: "timestamp equivalent to 10 hours ago"
}
]
},
{
name: "Howard",
events: [
{
event: "View",
timestamp: "timestamp equivalent to 2 hours ago"
}
]
},
{
name: "Raj",
events: [
{
event: "Some other event",
timestamp: "timestamp equivalent to 6 hours ago"
}
]
}
मैं निम्नलिखित बाहर की कोशिश की है, लेकिन यह हमेशा "Sheldon"
रिटर्न (शायद क्योंकि अन्य घटना मानदंडों को पूरा समाप्त होता है?)।
q.where({
$and: [
{
'events': {
$not: {
$elemMatch: {
event: "View",
timestamp: {
$gte: "timestamp equivalent to 5 hours ago"
}
}
}
}
}
]
});
क्या इतना है कि केवल "Leonard"
और "Raj"
के लिए दस्तावेज लौटा दिए जाते हैं मैं कर सकता है?
चेक [इस सवाल] (http: // stackoverflow ।कॉम/प्रश्न/1 9 465634/mongodb-query-on-nested-array-elements) एक बार। –
अधिक जानकारी के लिए आप (https://docs.mongodb.com/manual/reference/operator/query-comparison/) देख सकते हैं। –
@TanmayBaranwal मेरी मिसाल क्वेरी आपके लिंक में से एक के बराबर है, उम्मीद के अनुसार काम नहीं करती है क्योंकि एक और घटना है जो मानदंडों को पूरा करती है। – hiteshspac