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.