/ / Crea un documento senza restituirlo, in MongoDB / mongoose - mongodb, mongoose, node-mongodb-native

Crea un documento senza restituirlo, in MongoDB / mangusta - mongodb, mangusta, nodo-mongodb-nativo

Sto creando molti documenti e temo che metà della larghezza di banda del server venga spesa per restituire quei nuovi documenti al chiamante.

Non voglio che il server mi restituisca il documento. Voglio solo ricevere un riconoscimento una volta che il documento è stato salvato.

Sono stato in grado di affrontare questa preoccupazione quando in aggiornamento un documento, usando Model.updateOne() invece di Model.findOneAndUpdate().

Ma come posso fare lo stesso durante la creazione di un documento?

Finora ho provato:

Model.create(docData)

new Model(docData).save()

Model.collection.insert(docData)

Model.collection.insertMany([docData])

ma in ogni caso, mongoose (o il driver mongodb) mi restituisce un documento.

Non sono sicuro se MongoDB stia effettivamente rispedendo il documento sulla rete o se sta semplicemente rispedendo il nuovo _id e che viene aggiunto ai dati originali dal conducente. Ma temo il primo.

Come posso salvare il documento senza che MongoDB me lo rispedisca?

risposte:

1 per risposta № 1

Secondo documento di mangusta di insertMany dice che il risultato è un insertWriteOpCallback che, secondo la documentazione del driver mongodb, afferma che restituisce i documenti inseriti.


In altre mani il documentazione mongodb sull'insert ci parla di a Oggetto WriteResult che non sta restituendo alcun documento.


La risposta è che mongodb-driver sta aggiungendo il documento inserito nella sua risposta.


Quello che puoi fare è usare il metodo bulkWrite dal driver nativo mongodb, che consente di eseguire un inserimento e ottenere solo la risposta mongodb (quindi senza documenti).