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

Lược đồ tự tham chiếu Mongoose không tạo ObjectId cho tất cả các tài liệu con

Bạn nên tạo một đối tượng mới khi khai báo CollectPoint được nhúng của bạn mặt hàng:

var data = new CollectPoint({
    name: "Level 1",
    collectPoints: [
        new CollectPoint({
            name: "Level 1.1",
            collectPoints: []
        })
    ]
});

Bằng cách này, _idcollectPoints sẽ được tạo bằng cách cài đặt CollectPoint nếu không, bạn chỉ đang tạo một JSONObject thuần túy.

Để tránh những loại vấn đề đó, hãy xây dựng trình xác thực cho mảng của bạn sẽ gây ra lỗi nếu các mục của nó có loại sai:

var CollectPointSchema = new mongoose.Schema({
    name: { type: String },
    collectPoints: {
        type: [this],
        validate: {
            validator: function(v) {
                if (!Array.isArray(v)) return false
                for (var i = 0; i < v.length; i++) {
                    if (!(v[i] instanceof CollectPoint)) {
                        return false;
                    }
                }
                return true;
            },
            message: 'bad collect point format'
        }
    }
});

Bằng cách này, điều sau sẽ gây ra lỗi:

var data = new CollectPoint({
    name: "Level 1",
    collectPoints: [{
        name: "Level 1.1",
        collectPoints: []
    }]
});



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Làm cách nào để nhập thư mục kết xuất vào cơ sở dữ liệu mongodb?

  2. Cách chuyển đổi trường của một cột đối tượng dtype cụ thể thành cột của khung dữ liệu trong gấu trúc

  3. Định hình lại tài liệu bằng cách tách một giá trị trường

  4. truy vấn mongoDB sử dụng tổng hợp để truy vấn ngày gần đây nhất của một mặt hàng

  5. Triển khai &định cấu hình các mảnh MongoDB với Ansible