कुछ नियम हैं जो MongoDB संबंधित प्रश्न का अच्छा और मूल्यवान उत्तर प्राप्त करने में मदद करेंगे।
कृपया नीचे कुछ सामान्य श्रेणियां और चरण देखें जो डेटा एकत्र करने में मदद करेंगे जो आपको एक अच्छा उत्तर तेजी से खोजने में मदद कर सकते हैं।
कृपया सभी दस्तावेज़ टेक्स्ट प्रारूप में संलग्न करें क्योंकि स्क्रीनशॉट को संपादक में पेस्ट नहीं किया जा सकता :-)
-
मूल बातें - जैसे-जैसे mongoDB विकसित होता है कुछ अच्छे फ़ंक्शन उच्च संस्करण में उपलब्ध होते हैं - भ्रम से बचने के लिए कृपया अपना वर्तमान मोंगो संस्करण दें और हमें बताएं कि क्या यह स्टैंडअलोन सिस्टम, प्रतिकृति सेट या शार्प वातावरण है
-
प्रदर्शन के बारे में प्रश्न:
- कृपया निष्पादन आँकड़े आउटपुट प्रदान करें - प्रश्नों के लिए:
db.collection.find({query}).explain("executionStats")
- जो एग्रीगेशन फ्रेमवर्क के लिए क्वेरी, इंडेक्स के बारे में कुछ आंकड़े देगा:db.collection.aggregate([{pieplineDatausedToExecuteAggregation},{explain:true}])
- ssd, ram size, cpus no और यहां तक कि यदि ज्ञात हो तो घड़ी की गति जैसे हार्डवेयर विनिर्देश
- कृपया निष्पादन आँकड़े आउटपुट प्रदान करें - प्रश्नों के लिए:
-
डेटा हेरफेर - चूंकि प्रश्न दस्तावेज़ संरचना पर आधारित हैं, कृपया वैध दस्तावेज़ डंप (या एक से अधिक) प्रदान करें और सुनिश्चित करें कि
mocked
फ़ील्ड क्वेरी में फ़ील्ड को प्रतिबिंबित कर रहे हैं, कभी-कभी क्वेरी बनाने का प्रयास करते समय, हम उदाहरण दस्तावेज़ सम्मिलित करने में असमर्थ होते हैं क्योंकि उनकी संरचना मान्य नहीं होती है। इसके अलावा यदि आप प्रक्रिया p के अंत में कुछ परिणाम की उम्मीद कर रहे हैं - कृपया अपेक्षित उदाहरण संलग्न करें। -
प्रतिकृति सेट/शार्डिंग समस्याएं - कृपया
rs.config()
जोड़ें /sh.status()
और होस्ट डेटा निकालें (यदि संवेदनशील हो) -
यदि आपके पास ड्राइवर/फ्रेमवर्क विशिष्ट प्रश्न है - कृपया प्रदर्शित करें कि क्या किया गया था और आपको समस्या कहां है। कभी-कभी मोंगो शेल सिंटैक्स से ड्राइवर/फ्रेमवर्क सिंटैक्स में क्वेरी का अनुवाद करना बहुत कठिन होता है - इसलिए यदि आप उस क्वेरी को mongoDB शेल में बनाने का प्रयास कर सकते हैं - और उदाहरण चल रहा है - कृपया इसे प्रश्न में जोड़ें।
उदाहरण:
आरई:1
विंडोज़ लैपटॉप पर mongo 2.6 का उपयोग करके मैं 2GB से अधिक संग्रह करने में असमर्थ हूँ, क्यों?
आरई:2
मेरी क्वेरी db.collection.find({isValid:true})
30 सेकंड से अधिक समय लगता है, कृपया आउटपुट समझाएं देखें:
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.collectionName",
"indexFilterSet" : false,
"parsedQuery" : {},
"winningPlan" : {
"stage" : "COLLSCAN",
"direction" : "forward"
},
"rejectedPlans" : []
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 6,
"executionTimeMillis" : 0,
"totalKeysExamined" : 0,
"totalDocsExamined" : 6,
"executionStages" : {
"stage" : "COLLSCAN",
"nReturned" : 6,
"executionTimeMillisEstimate" : 0,
"works" : 8,
"advanced" : 6,
"needTime" : 1,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"invalidates" : 0,
"direction" : "forward",
"docsExamined" : 6
}
},
"serverInfo" : {
"host" : "greg",
"port" : 27017,
"version" : "3.3.6-229-ge533634",
"gitVersion" : "e533634d86aae9385d9bdd94e15d992c4c8de622"
},
"ok" : 1.0
}
आरई:3
मुझे अपनी एकत्रीकरण पाइपलाइन, मोंगो 3.2.3 में प्रत्येक रिकॉर्ड से अंतिम 3 सरणी तत्व प्राप्त करने में परेशानी हो रही है।
मेरी क्वेरी:db.collection.aggregate([{aggregation pipeline}])
दस्तावेज़ स्कीमा:
{
"_id" : "john",
"items" : [{
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e4"),
"grad" : true
}
]
}, {
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e5"),
"grad" : true
}
]
}, {
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e6"),
"grad" : true
}
]
}, {
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e7"),
"grad" : true
}
]
}, {
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e8"),
"grad" : true
}
]
}
]
}
//expected result
{
"_id" : "john",
"items" : [{
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e4"),
"grad" : true
}
]
}, {
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e5"),
"grad" : true
}
]
}, {
"name" : "John",
"items" : [{
"school" : ObjectId("56de35ab520fc05b2fa3d5e6"),
"grad" : true
}
]
}
]
}
आरई:4
मुझे अपने प्रतिकृति सेट के साथ समस्या है, डेटा को अन्य सर्वर पर mongo 3.2 का उपयोग करके दोहराया नहीं जाता है, rs.config डंप के नीचे:
{
"_id" : "rs0",
"version" : 1,
"members" : [
{
"_id" : 1,
"host" : "mongodb0.example.net:27017"
}
]
}
आरई:5
मेरे पास मोंगो में एकत्रीकरण क्वेरी है और c#
से टाइप किए गए परिणाम प्राप्त करने में परेशानी हो रही है ड्राइवर
startDate = new Date() // Current date
startDate.setDate(startDate.getDate() - 7) // Subtract 7 days
db.collection.aggregate([{
$match : {
LastUpdate : {
$gte : startDate
}
}
}, {
$sort : {
LastUpdate : -1
}
}, //sort data
{
$group : {
_id : "$Emp_ID",
documents : {
$push : "$$ROOT"
}
}
}, {
$project : {
_id : 1,
documents : {
$slice : ["$documents", 3]
}
}
}
])
मेरा सी# कोड
public static void Main()
{
var client = new MongoClient("mongodb://localhost:27017");
var database = client.GetDatabase("test");
var collection = database.GetCollection<InnerDocument>("irpunch");
var aggregationDocument = collection.Aggregate()
.Match(x=>x.LastUpdate> DateTime.Now.AddDays(-40))
.SortByDescending(x => x.LastUpdate)
.Group(BsonDocument.Parse("{ _id:'$Emp_ID', documents:{ '$push':'$$ROOT'}}"))
// how to get projection result as typed object ??
.Project(BsonDocument.Parse("{ _id:1, documents:{ $slice:['$documents', 3]}}")).ToList();
}
}