Der er et par regler, der vil hjælpe her med at få et godt og værdifuldt svar på MongoDB-relaterede spørgsmål.
Se venligst nedenfor nogle almindelige kategorier og trin, der vil hjælpe med at indsamle data, som kan hjælpe dig med at finde et godt svar hurtigere.
Vedhæft alle dokumenter i tekstformat, da skærmbilledet ikke kan indsættes i editoren :-)
-
Grundlæggende - efterhånden som mongoDB udvikler sig, er nogle fede funktioner tilgængelige i en højere version - for at undgå forvirring, giv venligst din nuværende mongo-version og lad os vide, om dette er et selvstændigt system, et replikasæt eller et sharded miljø
-
Spørgsmål om ydeevne:
- giv venligst udførelsesstatistik output - for forespørgsler:
db.collection.find({query}).explain("executionStats")
- som vil give nogle statistikker om forespørgsel, indekser, for aggregeringsramme:db.collection.aggregate([{pieplineDatausedToExecuteAggregation},{explain:true}])
- hardwarespecifikationer som ssd, ram-størrelse, cpus-nr og endda clock-hastighed, hvis kendt
- giv venligst udførelsesstatistik output - for forespørgsler:
-
Datamanipulation - da forespørgsler er baseret på dokumentstruktur, angiv venligst et gyldigt dokumentdump (eller endda mere end én) og sørg for, at
mocked
felter afspejler felter i forespørgslen, nogle gange når vi forsøger at bygge forespørgsel, er vi ikke i stand til at indsætte eksempler på dokumenter, da strukturen ikke er gyldig. Også hvis du forventer et bestemt resultat ved neden af proces p - vedhæft venligst forventet eksempel. -
Replika sæt/sharding problemer - tilføj venligst
rs.config()
/sh.status()
og fjern værtsdata (hvis følsomme) -
Hvis du har et driver-/rammespecifikt spørgsmål - vis venligst, hvad der blev gjort, og hvor er du har problemet. Nogle gange er det meget svært at oversætte forespørgsel fra mongo shell-syntaks til driver/framework-syntaks - så hvis du kunne prøve at bygge den forespørgsel i mongoDB shell - og have et kørende eksempel - så føj det til spørgsmålet.
Eksempler:
RE:1
Ved at bruge mongo 2.6 på Windows laptop kan jeg ikke have en samling større end 2 GB, hvorfor?
RE:2
Min forespørgsel db.collection.find({isValid:true})
tager mere end 30 sekunder, se venligst forklar output:
{
"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
}
RE:3
Jeg har problemer med at hente de sidste 3 array-elementer fra hver post i min aggregeringspipeline, mongo 3.2.3
min forespørgsel:db.collection.aggregate([{aggregation pipeline}])
dokumentskema:
{
"_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
}
]
}
]
}
RE:4
Jeg har problemer med mit replikasæt, data replikeres ikke til anden server ved hjælp af mongo 3.2, under rs.config dump:
{
"_id" : "rs0",
"version" : 1,
"members" : [
{
"_id" : 1,
"host" : "mongodb0.example.net:27017"
}
]
}
RE:5
Jeg har aggregeringsforespørgsel i mongo og har problemer med at få skrevet resultat fra c#
chauffør
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]
}
}
}
])
min c#-kode
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();
}
}