MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

Làm thế nào để giải quyết vấn đề liên quan đến mongoDB một cách hiệu quả?

Ở đây có một số quy tắc sẽ giúp bạn có được câu trả lời hay và có giá trị cho câu hỏi liên quan đến MongoDB.

Vui lòng xem bên dưới một số danh mục và bước phổ biến sẽ giúp thu thập dữ liệu có thể giúp bạn tìm ra câu trả lời tốt nhanh hơn.

Vui lòng đính kèm tất cả các tài liệu ở định dạng văn bản vì không thể dán ảnh chụp màn hình vào trình chỉnh sửa :-)

  1. Thông tin cơ bản - khi mongoDB phát triển, một số chức năng thú vị có sẵn trong phiên bản cao hơn - để tránh nhầm lẫn, vui lòng cung cấp phiên bản mongo hiện tại của bạn và cho chúng tôi biết đây là hệ thống độc lập, bộ sao chép hay môi trường phân đoạn

  2. Câu hỏi về hiệu suất:

    • vui lòng cung cấp đầu ra thống kê thực thi - cho các truy vấn:db.collection.find({query}).explain("executionStats") - điều đó sẽ cung cấp một số thống kê về truy vấn, chỉ mục, cho khung tổng hợp:db.collection.aggregate([{pieplineDatausedToExecuteAggregation},{explain:true}])
    • thông số kỹ thuật phần cứng như ssd, kích thước ram, không có CPU và thậm chí cả tốc độ đồng hồ nếu biết
  3. Thao tác dữ liệu - vì các truy vấn dựa trên cấu trúc tài liệu, vui lòng cung cấp kết xuất tài liệu hợp lệ (hoặc thậm chí nhiều hơn một) và đảm bảo rằng mocked các trường phản ánh các trường trong truy vấn, đôi khi khi cố gắng tạo truy vấn, chúng tôi không thể chèn tài liệu mẫu vì cấu trúc của chúng không hợp lệ. Ngoài ra, nếu bạn đang mong đợi một kết quả nhất định ở đầu quá trình p - vui lòng đính kèm ví dụ mong đợi.

  4. Các vấn đề về bộ bản sao / sharding - vui lòng thêm rs.config() / sh.status() và xóa dữ liệu máy chủ (nếu nhạy cảm)

  5. Nếu bạn có câu hỏi cụ thể về trình điều khiển / khung - vui lòng hiển thị những gì đã được thực hiện và bạn gặp vấn đề ở đâu. Đôi khi rất khó để dịch truy vấn từ cú pháp shell mongo sang cú pháp driver / framework - vì vậy nếu bạn có thể cố gắng tạo truy vấn đó trong mongoDB shell - và có ví dụ đang chạy - hãy thêm nó vào câu hỏi.

Ví dụ:

RE:1

Sử dụng mongo 2.6 trên máy tính xách tay windows Tôi không thể có bộ sưu tập lớn hơn 2GB, tại sao?

RE:2

Truy vấn của tôi db.collection.find({isValid:true}) mất hơn 30 giây, vui lòng xem giải thích đầu ra:

{
    "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

Tôi đang gặp sự cố để lấy 3 phần tử mảng cuối cùng từ mọi bản ghi trong quy trình tổng hợp của mình, mongo 3.2.3

truy vấn của tôi:db.collection.aggregate([{aggregation pipeline}])

lược đồ tài liệu:

{
    "_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

Tôi gặp sự cố với tập hợp bản sao của mình, dữ liệu không được sao chép sang máy chủ khác bằng mongo 3.2, bên dưới kết xuất rs.config:

   {
       "_id" : "rs0",
       "version" : 1,
       "members" : [
          {
             "_id" : 1,
             "host" : "mongodb0.example.net:27017"
          }
       ]
    }

RE:5

Tôi có truy vấn tổng hợp trong mongo và gặp sự cố khi nhận kết quả đã nhập từ c# người lái xe

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]
                }
            }
        }
    ])

mã c # của tôi

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();


    }
}

Chúc bạn vui vẻ!




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để sử dụng mongodb với electron?

  2. Danh sách các toán tử ngày, phương thức và biến trong MongoDB

  3. Cách chạy các lệnh mongodb thô từ pymongo

  4. Tổng hợp Mongodb $ group, giới hạn độ dài của mảng

  5. Tạo chỉ mục nhiều khóa trong MongoDB