Como usar o UpSert Query em MongoDB

Como usar o UpSert Query em MongoDB
Os bancos de dados são amplamente categorizados nos tipos SQL e NOSQL. MongoDB se enquadra na última categoria e suporta uma forte linguagem de consulta para processar dados. A consulta UpSert em MongoDB é usada para ajudar a atualização e substituir os métodos. Ele cria um novo documento se a condição não for atendida pelos métodos de atualização/substituição. Alguns métodos estendidos de uma atualização também são suportados por upsert consulta, e eles incluem FingandModify, UpdateOne (), Substitua ().

Este artigo explicará o uso da consulta UpSert dos níveis básicos para avançados. O uso avançado desta consulta será explicado aplicando o UpSert com vários métodos.

Como a consulta upsert funciona em MongoDB

A opção UpSert tem a seguinte sintaxe:

upsert:

O valor booleano pode ser verdadeiro falso. Por padrão, o upsert tem um falso valor.

Como usar a consulta UPSert com o método de atualização

Esta seção explica a consulta UpSert com vários comandos. Vamos exercitar o método de atualização primeiro. Como a atualização funciona em uma condição em que o documento que queremos corresponder não existe?

A coleção da equipe contém os seguintes documentos:

> dB.funcionários.encontrar().bonito()

O comando abaixo mencionado tenta atualizar um documento (_id: 3) isso não existe, então a consulta de atualização também upsert nem atualizar qualquer documento.

> dB.funcionários.Update (_ id: 3, name: "Alen")

Agora, vamos adicionar um upsert opção e defina seu valor como verdadeiro na mesma condição que explicamos acima. O comando mencionado abaixo tenta atualizar um documento que corresponde ao nome: “Sam”Field, mas o documento não existe.

Observa -se a partir da saída que o número de valores de documentos upsertados é "1".

> dB.funcionários.update (name: "sam", desig: "Team-lhead", upSert: true)

Para verificar isso, vamos verificar os documentos dentro “funcionários”Coleção usando o seguinte comando:

> dB.funcionários.encontrar().bonito()

Observação: O método pretty () é usado para obter a saída em um formato mais claro.

Como usar o UpSert Query com o Método UpdateOne

A opção UpSert pode ser usada com o método de atualização para inserir um documento se a correspondência da condição não tiver êxito. O "funcionários”A coleção contém três documentos e queremos adicionar um documento com (_id: 3) que não existe. Fazer upsert Funcional, você deve definir seu valor como true, o cenário acima é executado emitindo o comando mencionado abaixo:

> dB.funcionários.updateOne (_ id: 3, $ set: name: "sam", desig: "Team-liad", upSert: true)

No comando acima, usamos “_id: 3”Para corresponder a um documento, portanto, o documento UPSERTED recebeu um ID exclusivo“_id: 3““. Além disso, você pode verificar o upsert ação obtendo o conteúdo de funcionários coleção:

> dB.funcionários.encontrar().bonito()

Como usar a consulta upSert com o método substituído

O método substituído substitui o (s) valor (s) de campo se a correspondência for bem -sucedida. E se a correspondência não for bem -sucedida, o UpSert poderá ser usado para adicionar um novo documento.

No comando declarado abaixo, substitua O comando tenta substituir o documento que tem campo “Nome: Tom“(Que não existe na verdade). O valor upsert é “verdadeiro“, Por isso adicionará um novo documento com um ID exclusivo padrão que contém campo“Nome: Jobes" e "Desig: Autor“:

> dB.funcionários.Substitua (Nome: "Tom", Nome: "Jobes", Desig: "Author", upSert: true)

Como usar o UpSert com o método FindAndModify

O FingandModify () modifica o documento e age quase o mesmo que o atualizar() método, mas findAndModify () modifica apenas um documento que corresponde primeiro, enquanto o atualizar() Método atualiza todos os documentos correspondentes.

O comando escrito abaixo mostra o uso do USPERT com o método findAndmodify (). Enquanto o FingandModify () Não combina com qualquer documento, portanto, um novo documento entra:

O "consulta”Palavra -chave usada no comando tenta para combinar“_id: 5”E tenta atualizar o“num“Campo por valor“15“:

> dB.funcionários.FingandModify (query: _id: 5, atualização: $ inc: num: 15, upSert: true)

A consulta retorna “nulo”Porque não usamos classificação no comando e também nenhum documento de documentos também. No entanto, se você olhar para o conteúdo do “funcionários”Coleção, você encontrará o documento recém -apropriado com o valor de identificação“_id: 5“:

> dB.funcionários.encontrar().bonito()

Conclusão

O MongoDB tem uma longa lista de comandos e consultas para atualizar ou substituir dados dentro de documentos de uma coleção. Juntamente com esses comandos, a consulta UpSert auxilia esses comandos de atualização/substituição para inserir um novo documento se os comandos de atualização/substituição falharem em corresponder a qualquer documento. Neste guia da série MongoDB, fornecemos o uso de uma consulta UpSert com vários comandos no MongoDBB. Depois de analisar o mecanismo de trabalho do UpSert, conclui -se que o UpSert atua como um método de inserção para vários métodos de atualização/remoção no MongoDBB.