J'essaye de mettre à jour ma collection basée sur un si je trouve une valeur. Ma fonction de sauvegarde ressemble à ceci `Mise à jour d'une collection dans mongodb
router.post('/savePage', function (req, res) {
var page = req.body.page;
var query = {'pageId': page.pageId};
var paged = new pagedb(page);
pagedb.find(query, function (err, result) {
if(err) return console.error(err);
if(result.length > 0){
pagedb.update({'pageId': page.pageId}, page);
res.send('updated')
}
else{
paged.save(function (err) {
if (err) {
console.log('error saving page!');
throw err;
};
res.send('saved');
});
}
});
});`
Mon schéma ressemble à ceci
var pageShema = new Schema({
pageId: {
type: String
},
logo: {
type: String
},
show: {
type: String
},
teamName: {
type: String
},
header1: {
type: String
},
header2: {
type: String
},
date: {
type: Date,
default: Date.now
},
offense:{
type: {}
},
defense:{
type: {}
}
});
Mon sauvegarde fonctionne correctement mes données ne semble pas mettre à jour. J'utilise mongodb 3.2. En substance, je veux remplacer la page existante par une nouvelle. La page en cours d'envoi dans la demande
Dans votre requête de mise à jour, il ressemble vous passez une valeur directement depuis req.body.page, non cochée et non modifiée, en tant que [paramètre de mise à jour] (https://docs.mongodb.com/manual/reference/method/db.collection.update/#update-parameter). Êtes-vous sûr que c'est sûr? –