0
當我需要保存「文檔」時,我遇到了循環依賴問題。貓鼬中可能的循環引用
我的應用程序都是通過AngularJS接口Restfull。
在創建公司的屏幕上,您可以創建OBJECTS和SERVICES。在創建服務屏幕時,它必須關聯一個創建的對象。
問題是,創建的OBJECT尚未持續,所以我沒有_id。因此無法在SERVICE中引用它。只有當我有一個OBJECT時,我纔可以將它關聯到company.services[0].object
。
有什麼建議嗎?
這是我需要保存在MongoDB中。請參閱SERVICE中對OBJECT "5779f75a27f9d259248211c7"
的參考。
/* 1 */
{
"_id" : ObjectId("5749bb92bf8145c97988e4a9"),
"name" : "company 1",
"services" : [
{
"_id" : ObjectId("5764cb2c00d00cf10c9c41c6"),
"description" : "service 1",
"object" : ObjectId("5779f75a27f9d259248211c7"),
}
],
"objects" : [
{
"_id" : ObjectId("5779f75a27f9d259248211c7"),
"description" : "object 1",
}
]
}
這是我的架構:
var objectSchema = new mongoose.Schema({
description: {
type: String,
trim: true,
unique: true,
required: 'Description is required'
}
})
var serviceSchema = new mongoose.Schema({
description: {
type: String,
trim: true,
required: 'Description is required'
},
object: {
type: mongoose.Schema.ObjectId,
ref: 'Object'
},
})
var companySchema = new mongoose.Schema({
name: {
type: String,
default: '',
trim: true,
unique: true,
required: 'Name is required'
},
guarda_documentos: {
services: [serviceSchema],
objects: [objectSchema],
},
});
mongoose.model('Company', companySchema);
mongoose.model('Object', objectSchema);
問題是服務和對象是公司的子文件。 –
由於您的對象是服務中的引用,爲什麼您將它作爲公司的子文檔?除非它具有此處描述的另一個目的,否則請從公司刪除對象subdoc。然後按照async:object save - > service save - > company save的相同流程進行操作 – cyberwombat