Je veux construire une fonction simple qui peut mettre à jour (upsert
) un document par collection name, field key, field value, updateData
Mongodb ne peut pas utiliser le paramètre comme clé de filtre de champ de mise à jour?
exemple:
function updateDB(tableName, id, rowInfo, checkfield, callback) {
db.collection(tableName, function (err, collection) {
if (err) {
console.log(err);
} else {
console.log(checkfield);
collection.update({ checkfield: id }, rowInfo, { upsert: true }, function (err, objects) {
if (err) {
throw err;
callback(false);
} else {
// console.log(objects);
callback(true);
}
});
}
});}
Cependant lorsque j'utilise le paramètre comme filtre de champ dans la requête de mise à jour, il insère toujours nouveau une des données ne mettre à jour le document. Exemple:
collection.update({ checkfield: id }.....
Mais quand je change le filtre de champ pour realFieldName
fonctionne correctement. Exemple:
collection.update({ 'realFieldName': id }....
Quelle est la différence entre les deux?
ça fonctionne, merci! – maxyen
@maxyen vous êtes les bienvenus –