(ユーザ1 < ---> 1 .. *ロボット)の間に1対多の関連付けエラーが発生しました。新しいユーザはサブスクリプションを行うために、新しいロボットに(参照と名義)を追加する必要があるので、ユーザ情報を新しいドキュメントとしてユーザコレクションに追加し、ロボット情報をmongodbデータベースの新しいコレクションとしてロボットコレクションに追加する必要があります。node.js mongodb 1対多の関連付けエラー
/routes/users.js:
router.post('/register', function(req, res, next) {
//tester si username exist
var user = new models.user({
nom_prenom: req.body.nom_prenom,
username: req.body.username,
password: req.body.password,
email: req.body.email,
sexe: req.body.sexe,
adresse: req.body.adresse,
admin: false
});
var robot = new models.robot({
reference: req.body.reference,
nom: req.body.nom,
flag: req.body.flag
});
user.save(function(err, u){
if(err) res.json(err);
res.json(u);
})
robot.save(function(err, u){
if(err) res.json(err);
res.json(u);
})
});
/models/users.js:
var mongoose = require('../config/db');
var UserSchema = mongoose.Schema({
nom_prenom: String,
password: String,
username: String,
email: String,
//username: { String, unique:true, required:true },
//email: { String, unique:true, required:true },
date_naissance: Date,
adresse: String,
sexe: String,
equipements:[{type: mongoose.Schema.Types.ObjectId, ref: 'Equipement'}],
robots:[{type: mongoose.Schema.Types.ObjectId, ref: 'Robot'}],
admin: Boolean
});
module.exports = mongoose.model('User', UserSchema);
/モデル/ロボット:
var mongoose = require('../config/db');
var RobotSchema = mongoose.Schema({
reference: String,
nom: String,
flag: Boolean,
user: { type: mongoose.Schema.Types.ObjectId, ref: 'User' }
});
module.exports = mongoose.model('Robot', RobotSchema);
/ルート/ロボット.js:
10結果ポストマン:
The Result on CMD after i execute :db.robots.find().pretty();
{
"_id" : ObjectId("57b5862673c11c840b31cc55"),
"reference" : "Rob9999",
"nom" : "Robot 9999",
"flag" : false,
"__v" : 0
}
およびI)が(かなりdb.users.find()を実行した後、CMDに結果。
{
"_id" : ObjectId("57b5862673c11c840b31cc54"),
"nom_prenom" : "test",
"username" : "test",
"password" : "test",
"email" : "[email protected]",
"sexe" : "femme",
"adresse" : "tunis",
"admin" : false,
"robots" : [ ],
"equipements" : [ ],
"__v" : 0
}
ユーザの配列ロボットが空なぜ見つかりません?
そのユーザーのロボットのリストに表示されるユーザーとロボットを挿入することはできますか?
いつ、どのようにあなたの 'ルート/ robots.js'と呼ばれますか? –