「文書」を保存する必要があるときに循環依存性に問題があります。マングースで循環参照が可能
私のアプリケーションはすべてAnglesJS経由のインターフェースを備えたRestfullです。
COMPANYを作成する画面で、OBJECTSとSERVICESを作成できます。 SERVICES画面の作成では、作成したOBJECTを関連付ける必要があります。
問題は、作成された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);
問題は、サービスとオブジェクトが会社の副文書であることです。 –
あなたのオブジェクトはサービスでの参照なので、なぜそれを会社の副文書として持っていますか?別の目的がある場合を除いて、ここで説明していない限り、オブジェクトのサブディレクトリを会社から削除します。次に、非同期の同じプロセスに従います。オブジェクトの保存 - >サービスの保存 - >会社の保存 – cyberwombat