在下面的代码中,我在 console.log 中打印的值是正确的,但是当我搜索并将对象输入数据库时,数据库中的所有对象都包含相同的十六进制和图像路径,但 id 不同. 我首先尝试使用 findOne,但结果相同。我是 MongoDb 的新手,所以我假设这只是我做的愚蠢的事情。任何想法请以我的方式发送给他们:)
exports.addImage = function(req,res){
var params = req.body;
var colors = params.color;
var passedImg = params.path;
var ndxobj;
for(var index in colors){
ndxobj = colors[index];
//Values here are the correct index and contain valid data
console.log("col: ", ndxobj);
var query = clrModel.find({hex: ndxobj.hex}, function(err,result){
if(!err && result.length > 0){
console.log(result);
}else if(!err){
//We have an empty db for the searched obj
var locclr = new clrModel({
hex: ndxobj.hex
});
locclr.img.push({path:passedImg, date:ndxobj.imagedate});
locclr.save(function(error, data){
if(error){
console.log("Error in addImage find call: ",error);
res.json(error);
}
else{
console.log("Saving: ",data);
res.json(data);
}
});
}else {
//Handle error
}
});
}
};