Mongoose的运营商问题

时间:2017-09-22 22:09:32

标签: node.js mongodb mongoose

所以这是我的main.js:

const mongoose = require('mongoose');
const proModel = require('./doc/proModel');
const cabModel = require('./doc/cabModel');
mongoose.connect('mongodb://127.0.0.1/DocTest');

const pro1 = new proModel({
_id: new mongoose.Types.ObjectId(),
Nom: "Ok",
Metier: {
    Pro: false,
    Secretaire: true

}
});

const cab1 = new cabModel({
InfoCab: {
    Nom: "WONKLAB"
}

});
const handleError = function (err) {
console.error(err);

};

pro1.save(function (err) {
if (err) return handleError(err);
});
if (pro1.Metier.Pro != false) {
cab1.Pro._idPro = pro1._id;
} else if (pro1.Metier.Secretaire != false){
cab1.Pro._idSecretaire = pro1._id
}


cab1.save(function (err) {
if (err) return handleError(err);
});     

如果我有这个,我在shell中有最奇怪的输出:

if (pro1.Metier.Pro = true) { // turning != false into =true
cab1.Pro._idPro = pro1._id;
} else if (pro1.Metier.Secretaire = true){ // same here
cab

这样做会给我输出

MongoDB Enterprise > db.pros.find().pretty()
{
"_id" : ObjectId("59c587e4d76f5325dbf3c241"),
"Nom" : "Ok",
"Metier" : {
    "Pro" : true, // Stated as false previously
    "Secretaire" : true
},
"__v" : 0

当Pro被声明为false且秘书为true时。 任何人都可以解释这背后的机制。我得到了修复,但我想了解这里的逻辑。

干杯,

0 个答案:

没有答案