Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में केवल महीना और दिन के आधार पर क्वेरी कैसे करें?

MongoDB में तारीख फील्ड से केवल महीना और दिन निकालकर क्वेरी करने के लिए एग्रीगेशन पाइपलाइन में $month और $dayOfMonth ऑपरेटर का उपयोग करें।

उदाहरण

विभिन्न वर्षों लेकिन समान महीना/दिन वाले दस्तावेज़ बनाएं:

> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2019-04-27")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbcaeef71edecf6a1f6b2") }
> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2018-04-30")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbcb7ef71edecf6a1f6b3") }
> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2018-04-27")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbcbcef71edecf6a1f6b4") }
> db.monthAndDayDemo.insertOne({"LoginDate": new ISODate("2016-04-27")});
{ "acknowledged" : true, "insertedId" : ObjectId("5cefbdaaef71edecf6a1f6b5") }

दस्तावेज़ देखें:

> db.monthAndDayDemo.find();
{ "_id" : ObjectId("5cefbcaeef71edecf6a1f6b2"), "LoginDate" : ISODate("2019-04-27T00:00:00Z") }
{ "_id" : ObjectId("5cefbcb7ef71edecf6a1f6b3"), "LoginDate" : ISODate("2018-04-30T00:00:00Z") }
{ "_id" : ObjectId("5cefbcbcef71edecf6a1f6b4"), "LoginDate" : ISODate("2018-04-27T00:00:00Z") }
{ "_id" : ObjectId("5cefbdaaef71edecf6a1f6b5"), "LoginDate" : ISODate("2016-04-27T00:00:00Z") }

अप्रैल 27 (महीना=4, दिन=27) वाले दस्तावेज़ ढूंढें

> db.monthAndDayDemo.aggregate([
  { "$project": { "m": {"$month": "$LoginDate"}, "d": {"$dayOfMonth": "$LoginDate"} }},
  { "$match": { "m": 4, "d": 27 }}
]);

आउटपुट:

{ "_id" : ObjectId("5cefbcaeef71edecf6a1f6b2"), "m" : 4, "d" : 27 }
{ "_id" : ObjectId("5cefbcbcef71edecf6a1f6b4"), "m" : 4, "d" : 27 }
{ "_id" : ObjectId("5cefbdaaef71edecf6a1f6b5"), "m" : 4, "d" : 27 }

व्याख्या:

  • $project - नए फील्ड m (महीना) और d (दिन) बनाता है
  • $month - तारीख से महीना निकालता है (1-12)
  • $dayOfMonth - तारीख से दिन निकालता है (1-31)
  • $match - महीना=4 और दिन=27 फिल्टर करता है

मूल दस्तावेज़ भी प्राप्त करने के लिए:

db.monthAndDayDemo.aggregate([
  {$match: {$expr: {$and: [{$eq: [{$month: "$LoginDate"}, 4]}, {$eq: [{$dayOfMonth: "$LoginDate"}, 27]}]}}}
])

उपयोग: जन्मदिन, वर्षगांठ, वार्षिक घटनाओं के लिए क्वेरी के लिए आदर्श।

  1. - MongoDB क्वेरी: फील्ड मानों में "@email" जैसे स्ट्रिंग की खोज करें

    MongoDB find() का उपयोग करके ईमेल स्ट्रिंग खोजें। आइए एक कलेक्शन बनाते हैं: > db.demo727.insertOne({UserId:John@email.com}); { acknowledged : true, insertedId : ObjectId(5eab375f43417811278f5898) } > db.demo727.insertOne({UserId:John@yahoo.com}); { acknowledged : true, insertedId : ObjectId(5

  1. - MySQL में डेट फील्ड के साथ केवल दिन और महीना तुलना करें

    DATE_FORMAT() से दिन-महीना तुलना डेट कॉलम में केवल दिन और महीना तुलना करने के लिए DATE_FORMAT() फ़ंक्शन का उपयोग करें। सिंटैक्स SELECT * FROM yourTableName WHERE DATE_FORMAT(yourColumnName, %m-%d) = DATE_FORMAT(yourValue, %m-%d) AND yourCondition; फॉर्मेट स्पेसिफायर %m - महीना (01-12) %d - दिन (0

  1. - MySQL में ORDER BY CASE के साथ वर्तमान दिन और महीने के अनुसार तिथि क्रमबद्ध करना

    MySQL में CASE एक्सप्रेशन के साथ वर्तमान तिथि से भविष्य की तिथियों को पहले क्रमबद्ध करना ORDER BY CASE का उपयोग करके कस्टम क्रमबद्ध तर्क लागू किया जा सकता है, जैसे वर्तमान तिथि से भविष्य की तिथियों को पहले, फिर अतीत की तिथियों को क्रमबद्ध करना। व्यावहारिक उदाहरण तालिका बनाना CREATE TABLE DemoTabl