Cảnh báo đã hiển thị cho bạn "Bạn chỉ có thể lồng vào nhau bằng cách sử dụng các tham chiếu hoặc mảng.". Đây là một thiết kế mongoose.
Nhưng những gì bạn có thể làm là:
var MySchema = new mongoose.Schema({
objectId: String,
parent: {
type: mongoose.Schema.ObjectId,
ref: 'MySchema'
},
})
Thao tác này sẽ sử dụng một lược đồ bên trong một lược đồ, sau đó bạn có thể sử dụng "lưu trước" để cập nhật dữ liệu của cha mẹ của bạn. Hoặc bạn có thể sử dụng một mảng các tham chiếu và chỉ giữ lại 1 phần tử.
Việc cần làm là xuất các lược đồ chứ không phải các mô hình, vì vậy bạn có thể lồng ghép nó. Như sau:
module.exports = MySchema;
Sau đó, tôi có một số appModel để đặt các mô hình cho bộ sưu tập lược đồ của mình, như thế này (app_model.js):
if(mongoose.modelNames().indexOf('mySchema') < 0) mongoose.model('mySchema', mySchema);