MongoDB sostituire e sostituire

MongoDB sostituire e sostituire
Le funzioni di sostituzione () e replACEALL () verranno utilizzate per sostituire un valore nel database MongoDB. C'è solo una piccola differenza nel funzionamento di entrambi gli operatori. Il metodo di sostituzione viene utilizzato per sostituire un documento solitario che corrisponde a un filtro dichiarato. Il metodo prende tre argomenti: il filtro, il documento di sostituzione e un oggetto Opzioni opzionali. Mentre il metodo sostituita viene utilizzato per sostituire tutti i documenti in una raccolta con una nuova serie di documenti. Questo metodo viene in genere utilizzato per gli aggiornamenti sfusi e può essere adatto quando si trasferisce i dati da una raccolta a un'altra. Il metodo prende due argomenti: i documenti di sostituzione e un oggetto Opzioni opzionali. In questa guida oggi discuteremo dell'uso di entrambi gli operatori con l'aiuto di esempi.

Crea collezione

A partire dalla shell MongoDB, stiamo creando una nuova collezione "Dummy" nel nostro MongoDB con l'aiuto del comando seguente: il metodo createCollection ().

Test> db.CreateCollection ("Dummy")
ok: 1

Inserire documenti

È tempo di aggiungere documenti alla collezione MongoDB. Per questo, il comando MongoDB di seguito è stato eseguito che sta inserendo più documenti nella funzione "Dummy": insertMany (). I documenti contengono informazioni su città, paesi e un campo di conteggio (con valori per alcuni documenti). Ogni documento nell'array ha una serie di coppie di valore chiave. Il comando restituisce una risposta che l'inserimento è riconosciuto.

Test> db.Manichino.InsertMany ([City: "Texas", Paese: "Inghilterra", Conte: 5,
... City: "Los Angeles", Paese: "America", Conte: 2, Città: "Italia", Paese: "Francia",
... City: "Istanbul", Paese: "Turchia", Conte: 8, Città: "Delhi", Paese: "India", Conte: 7])

riconosciuto: vero,
inseritedids:
'0': objectID ("63C7B3588083BBF655D69684"),
'1': objectID ("63C7B3588083BBF655D69685"),
'2': ObjectId ("63C7B3588083BBF655D69686"),
'3': ObjectId ("63C7B3588083BBF655D69687"),
'4': ObjectId ("63C7B3588083BBF655D69688")

Visualizza i documenti

Ora, per recuperare e visualizzare tutti i documenti dalla collezione "Dummy", lanceremo il metodo Find () nelle istruzioni mostrate di seguito. I documenti restituiti sono rappresentati in un formato di array, con ogni record nell'array come oggetto. I campi in ogni documento includono "_id", "città", "paese" e "count" i.e. Il campo "_id" è un identificatore univoco assegnato da MongoDB.

Test> db.Manichino.Trovare()
[
_id: objectId ("63C7B3588083BBF655D69684"), Città: "Texas", Paese: "Inghilterra", Conte: 5,
_id: objectId ("63C7B3588083BBF655D69685"), Città: "Los Angeles", Paese: "America", Conte: 2,
_id: objectId ("63c7b3588083bbf655d69686"), città: "Italia", paese: "Francia",
_id: objectId ("63C7B3588083BBF655D69687"), città: 'Istanbul', paese: 'Turchia', conteggio: 8,
_id: objectId ("63C7B3588083BBF655D69688"), città: 'Delhi', paese: 'India', conteggio: 7
"

Esempio 01: Sostituisci il metodo

Il metodo sostitutivo viene utilizzato per sostituire un singolo documento che corrisponde a un filtro specificato in MongoDB. Pertanto, lo useremo nelle istruzioni seguenti per sostituire un documento all'interno della raccolta "fittizio". Il primo argomento passato al metodo sostitutivo è il filtro. In questo caso, il filtro è "Città": "Delhi", il che significa che il documento con il campo "City" impostato su "Delhi" sarà sostituito. Il secondo argomento trasmesso al metodo SPOSTONE è il documento di sostituzione, che è il nuovo documento che sostituirà quello vecchio: "Paese": "India-Pacifico". Pertanto, il documento con il campo "City" impostato su "Delhi" avrà ora il campo "Paese" impostato su "India-Pacifico" anziché il suo valore precedente.

Il codice è avvolto in un blocco try-catch, che viene utilizzato per gestire eventuali errori che possono verificarsi durante l'esecuzione del metodo sostitutivo. Se si verifica un errore, verrà catturato dal blocco di cattura e stampato sulla console utilizzando la funzione print (). L'output mostra che un documento è stato abbinato, modificato e il conteggio aggiornato è zero.

test> prova
... db.Manichino.sostituire ("città": "Delhi", "paese": "India-pacifico");
... catch (e) print (e);

riconosciuto: True, C7B3588083BBF655D69684 "),
inseritedid: null,
MatchedCount: 1 e ',
ModifiedCount: 1,
UpSertedCount: 0

Dopo aver visualizzato tutti i documenti dalla raccolta "fittizio" sulla shell usando la funzione "trova", dobbiamo sapere che il 5th Il record è stato aggiornato con "Paese:" India-Pacifico "".

Test> db.Manichino.Trovare()
[
_id: objectId ("63C7B3588083BBF655D69684"), Città: "Texas", Paese: "Inghilterra", Conte: 5,
_id: objectId ("63C7B3588083BBF655D69685"), Città: "Los Angeles", Paese: "America", Conte: 2,
_id: objectId ("63c7b3588083bbf655d69686"), città: "Italia", paese: "Francia",
_id: objectId ("63C7B3588083BBF655D69687"), città: 'Istanbul', paese: 'Turchia', conteggio: 8,
_id: objectId ("63C7B3588083BBF655D69688"), Paese: 'India-Pacific'
"

Esempio # 02: Sostituisci il metodo con l'opzione UpSert

In questo esempio di codice, utilizzeremo l'opzione UPSert nel metodo Sostituo () che aggiunge un nuovo record se non viene trovato quello specificato. Pertanto, il codice che abbiamo utilizzato di seguito include un'opzione per migliorare il documento. Il primo argomento consegnato al metodo sostitutivo è il filtro "Città": "Mali": il documento con il campo "City" impostato su "Mali" verrà sostituito. Il secondo argomento è il documento di sostituzione Città: "Mali", Paese: "Maldive", Conte: 5. Il campo "City" impostato sul "Mali" ora avrà il campo "Paese" impostato su "Maldive" e il "Conte" impostato su 5.

Il terzo argomento passato al metodo sostitutivo è l'opzione upsert: true: per inserire un documento completamente nuovo se non trovato. Il codice è ancora una volta avvolto in un blocco try-catch per stampare () l'errore catturato nel comando. Il risultato della risposta mostra che nessun documento è stato abbinato e modificato, ma un documento è stato aggiornato: viene inserito un nuovo documento poiché il documento specificato nel filtro non esisteva.

test> prova db.Manichino.sostituire ("città": "mali",
… City: "Mali", Paese: "Maldives", Conte: 5, upSert: true);
... catch (e) print (e);

riconosciuto: vero,
InsertedId: ObjectID ("63C7BFAAF8C41DF4B034B120"),
MatchedCount: 0,
ModifiedCount: 0,
UpSertedCount: 1

Per confermare l'inserimento di un record extra, abbiamo mostrato l'intera collezione "fittizia" e abbiamo mostrato il risultato di seguito. L'opzione UpSert ha inserito un nuovo documento alla fine.

Test> db.Manichino.Trovare()
[
_id: objectId ("63C7B3588083BBF655D69684"), Città: "Texas", Paese: "Inghilterra", Conte: 5,
_id: objectId ("63C7B3588083BBF655D69685"), Città: "Los Angeles", Paese: "America", Conte: 2,
_id: objectId ("63c7b3588083bbf655d69686"), città: "Italia", paese: "Francia",
_id: objectId ("63C7B3588083BBF655D69687"), città: 'Istanbul', paese: 'Turchia', conteggio: 8,
_id: objectId ("63C7B3588083BBF655D69688"), città: 'Delhi', paese: 'India', conteggio: 7
_id: objectId ("63c7bfaaf8c41df4b034b120"), città: "mali", paese: "Maldives", conteggio: 5
"

Esempio # 03: Metodo sostitutivo

Ecco l'illustrazione su come funziona l'operatore sostitutivo () in mongodb. L'input per l'operatore $ sostituita è il campo "paese" dai documenti della raccolta. Il valore "Find" è "io" e il valore di sostituzione è "E". Ciò significa che tutte le occorrenze della lettera "I" nel campo "Paese" saranno sostituite con la lettera "E". Il risultato è un nuovo campo "paese" con la stringa modificata. Ad esempio, il valore originale "India-Pacifico" verrebbe sostituito con "Idea-Pacefec", il valore "America" ​​è ora "Amereca" e "Maldives" è ora "Maldeves" come dimostrato anche nell'output.

Test> db.Manichino.Aggregate ([$ Project: Paese: $ sostituire: input: "$ country", trova: "i", sostituzione: "e"])
[
_id: objectId ("63C7B3588083BBF655D69684"), Paese: "Inghilterra",
_id: objectId ("63C7B3588083BBF655D69685"), Paese: 'Amereca',
_id: objectId ("63C7B3588083BBF655D69686"), Paese: 'Francia',
_id: objectId ("63C7B3588083BBF655D69687"), paese: 'Turchia',
_id: objectId ("63C7B3588083BBF655D69688"), Paese: 'Idea-Pacefec',
_id: objectId ("63c7bfaaf8c41df4b034b120"), paese: "Maldeves"
"

Aggiorniamo ancora una volta l'illustrazione sopra. L'argomento "Find" è stato approvato con un valore "A" e il valore di sostituzione è "*****". Ciò significa che tutte le occorrenze della lettera "A" nel campo "City" saranno sostituite con la stringa "******". Il risultato è un nuovo campo "Città" con la stringa modificata. Ad esempio, l'originale "Texas" verrebbe sostituito con "Tex ***** s" e l'originale "Italia" sarebbe sostituito con "It ***** ly" e così via.

Test> db.Manichino.Aggregate ([$ Project: City: $ sostituire: input: "$ City", trova: "A", sostituzione: "******"])
[
_id: objectId ("63c7b3588083bbf655d69684"), città: 'tex ****** s',
_id: objectId ("63C7B3588083BBF655D69685"), città: 'Los Angeles',
_id: objectId ("63c7b3588083bbf655d69686"), città: 'it ****** ly',
_id: objectId ("63c7b3588083bbf655d69687"), città: 'ist ****** nbul',
_id: objectId ("63c7b3588083bbf655d69688"), città: null,
_id: objectId ("63c7bfaaf8c41df4b034b120"), città: 'm ****** li'
"

Conclusione

Abbiamo definito le funzioni di sostituzione di sostituti () e sostituzione. Abbiamo spiegato 3 degli esempi distinti nell'articolo I.e. Metodo Sostituisci () per aggiornare un singolo campo, l'opzione UPSert da utilizzare nel metodo SPOSTALE per aggiungere un nuovo record se non si trova un campo di corrispondenza e il metodo sostituibile () per sostituire una stringa in tutti i documenti. Il metodo sostitutivo () è molto diverso dal metodo sostituita quando si tratta dell'effetto che aggiunge alla raccolta del database.