Mam następujący Mongoose model:Mongoose findByIdAndUpdate nie usuwa zaktualizowane właściwości
var mongoose = require('mongoose');
var userSchema = mongoose.Schema({
facebook: {
name: String,
email: String,
customerId: String
}
});
var User = mongoose.model('User', userSchema);
Kiedy aktualizować część tego dokumentu przy użyciu findByIdAndUpdate
User.findByIdAndUpdate(id, {
$set: {
facebook: {
name: name
}
}
});
name
jest aktualizowany, a email
i customerId
zostaną usunięte (nieoprawny?).
Nie znalazłem tego udokumentowanego.
Czy istnieje sposób aktualizacji tylko określonych właściwości dokumentu za pomocą findByIdAndUpdate
?
tak, dzięki. Właśnie znalazłem to w mongotb docs. czy w ogóle muszę używać zestawu $? – krl
Oczywiście tak, jeśli nie użyjesz zestawu $, który zaktualizuje dokument, tylko zaktualizuje obiekt, usuwając wszystkie stare pola. –
cóż, nie ma. po prostu przetestowałem go bez zestawu w następujący sposób: User.findByIdAndUpdate (id, {'facebook.name': name}) i zachował wszystkie stare pola. – krl