ho questo piccolo schema per gli utenti:Mongoose - eliminare l'elemento dell'array documento secondario
{
username: String,
contacts: Array
}
Così, per esempio, i contatti di qualche utente sarà simile a questa:
{
username: "user",
contacts: [{'id': ObjectId('525.....etc'), 'approved': false}, {'id':ObjectId('534.....etc'), 'approved': true}]
}
Ora ho bisogno di eliminare un elemento dai contatti così faccio:
model.findByIdAndUpdate(23, {'$pull': {
'contacts':{'id':'525.....etc'}
}});
ma non sembra funzionare, n o errori, ma esso non viene eliminato, ho appena piacerebbe tornare questo documento per l'utente:
{
username: "user",
contacts: [{'id':ObjectId('534.....etc'), 'approved': false}]
}
come raggiungere questo obiettivo?
hi grazie, ma ora ho ottenuto questo errore: ** [MongoError: eccezione: non è possibile utilizzare la parte (contatti di contacts.id) per attraversare l'elemento ({contatti: [{id: ObjectId ('543394bb964ac60915ceba8b'), approvato: false}, {id: ObjectId ('543399f9964ac60915ceba8c'), approvato: false}]}) ** cosa potrebbe essere? ho usato la tua annotazione a punti - – sbaaaang
@sbaaaang Che cosa stai facendo in realtà? Stai usando il form "dot notation" come ti è stato detto? BTW Grazie per aver mostrato chiaramente che i tuoi dati effettivi differiscono da come hai postato, il che è probabilmente parte del problema di nuovo qui. Si prega di modificare per mostrare la struttura dei dati reali. –
sì usando * notazione dot * come hai detto, sì sto usando ObjectIds ma beh, questo non è il problema, credo: no? (domanda modificata) – sbaaaang