У меня есть две схемы: одна - схема пользователя в файле user.js, а другая - схема продукта в файле product.js.
Моя пользовательская схема в файле user.js выглядит следующим образом:
var userSchema = new Schema({
firstname: {
type: String,
required: true
},
lastname: {
type: String,
required: true
},
password: {
type: String,
required: true
},
mobileno: {
type: Number,
unique: true,
required: true
},
facebookid: {
type: String
},
userimage: {
type: String
}
});
и я переопределяю автоматически сгенерированный _id с помощью модуля mongoose-auto-increment, чтобы автоматически увеличивать идентификатор пользователя в пользовательской коллекции.
И схема моего продукта в файле product.js выглядит следующим образом:
var productSchema = new Schema({
userId: {
type: String,
required: true
},
productName: {
type: String,
required: true
},
productId: {
type: String,
required: true
},
price: {
type: Number,
unique: true,
required: true
},
prodcutImage: {
type: String
}
});
Когда пользователь будет добавлять новые продукты в коллекцию, он заполнит все поля, указанные в схеме продукта. Я хочу убедиться, что введенный идентификатор пользователя существует в коллекции пользователей или нет, когда новый продукт добавляется пользователем в коллекцию продуктов. Я попытался получить доступ к методу userSchema.find в productSchema перед сохранением
productSchema.pre('save', function (next) {
userSchema.findOne({'_id': userId}, function(err, user)
{
console.log(user);
});
}
Но возвращает ошибку. Может ли кто-нибудь помочь мне в этом вопросе.