Я разрабатываю приложение в Express
, Node
и Mongo
является базой данных. У меня есть коллекция users
, а user
может иметь mutiple registered-IDs
. Это как отношение one-to-many
. Я пытаюсь встроить document
в коллекции пользователя, как это:Экспресс: Вставить документ в существующий документ
post(function (req, res, next) {
var pid=req.body.pid;
var sid=req.body.sid;
var rfname=req.body.rfname;
var des=req.body.des;
var brand=req.body.brand;
var model=req.body.model;
var serial=req.body.serial;
var location=req.body.location;
var arr={pid: 'pid', sid: 'sid', rfname: 'rfname' ,des: 'des', brand: 'brand', model: 'model' ,serial: 'serial', location: 'location'};
mongoose.model('User').findOne({'pemail': req.session.email}, function (err, user){
if(err){
} else {
user.registeredId = arr;
user.save(function(err){
if(err){
} else {
res.render('user/register', {'success': 'dfhlaksdhfh'});
}
})
}
});
}
Моя схема пользователя, как это:
var mongoose = require('mongoose');
var userSchema = new mongoose.Schema({
email: String,
password: String,
fname: String,
lname: String,
plang: String,
slang: String,
country: String,
state: String,
city: String,
postalcode: String,
address1: String,
address2: String,
pemail: String,
semail: String,
age: String,
gender: String,
pphone: String,
sphone: String,
q1: String,
a1: String,
q2: String,
a2: String,
cfname: String,
clname: String,
cemail: String
});
mongoose.model('User', userSchema);
Веди меня, то, что я делаю неправильно, потому что он не вставлять документ в существующем документе. Нужно ли мне определять это в схеме, если да, то как?
В вашей схеме не указано поле 'зарегистрированоId', поэтому назначение отклонено. Вы также действительно хотите «массив», если хотите «один-ко-многим» и, конечно, '.push()' этому определенному массиву в схеме. –