この問題があります。基本的には、私は2つのスキーマを持っています - ユーザースキーマとドキュメントスキーマ。ドキュメントスキーマはUser
コレクション内の_id
フィールドのドキュメントを参照するowner
を持っています。参照対象のオブジェクトIDがMongoose 4.11.6で動作していない
問題は、User
コレクションに存在しない所有者IDを使用してDocument
コレクションに文書を保存できることです。そのようにする必要はありません。
は、ここに私のUser
スキーマとDocument
スキーマそれぞれ
const UserSchema = new Schema({
firstName: {
type: String,
required: true,
},
lastName: {
type: String,
required: true,
},
email: {
type: String,
validate: [{ validator: value => isEmail(value), msg: 'Invalid email.'
}],
unique: true,
required: true,
},
password: {
type: String,
required: true,
},
isAdmin: {
type: Boolean,
default: false,
},
}, {
timestamps: true,
});
const User = mongoose.model('User', UserSchema);
し、任意のヘルプは感謝を理解されるであろう文書スキーマ
const DocumentSchema = new Schema({
title: {
type: String,
required: true,
},
text: {
type: String,
},
access: {
type: String,
enum: ['public', 'private'],
default: 'public',
},
owner: {
type: Schema.Types.ObjectId,
ref: 'User',
required: true,
},
}, {
timestamps: true,
});
const Document = mongoose.model('Document', DocumentSchema);
です。あなたがsave
あなたDocument
前に呼び出しますあなたのDocument
スキーマにpre save
機能を追加することができ、その状況については
Mongodbはデータの一貫性を提供しません。この機能が必要な場合は、RDBMSを使用してください。 – alexmac