MongoDB $ addtoset

MongoDB $ addtoset
O operador $ addtoset está entre os operadores de atualização de matriz () que o MongoDB oferece para atualizar o valor do campo da matriz em documentos. O operador $ addtoset exigia que entradas exclusivas fossem adicionadas ou anexadas no campo de matriz especificado. Se um valor já estiver presente na matriz dada, o $ addtoset recupera a matriz exata sem modificação. O operador $ addtoset precisa garantir que uma matriz não contenha nenhum elementos duplicados quando for atualizado, mas é possível para a ordem dos itens de uma matriz alterar após o valor adicionado.

Como usar o operador MongoDB $ Addtoset?

O operador $ addtoset é empregado dentro do método update () do mongodb. O $ Addtoset Operator insere o parâmetro "campo" e a "adição". O "campo" indica a coluna do documento a ser atualizada. A "adição" é o parâmetro que atribui o valor a ser inserido na matriz no campo correspondente. Antes de usar o operador $ addtoset na consulta do MongoDB, precisamos estabelecer a coleção. Aqui, temos uma coleção de “cursos” do MongoDB aos quais aplicamos a consulta InsertMany () para adicionar os seguintes documentos.

dB.Cursos.InsertMany ([

"_id": 1,
"Field": "It",
"Cursos": ["Desenvolvimento da Web", "Banco de Dados", "Python"],
"Credithours": [5, 2, 7]
,

"_id": 2,
"Campo": "CS",
"Cursos": ["python", "networking", "computing"],
"Credithours": [8, 4, 2]
,

"_id": 3,
"Campo": "SE",
"Cursos": ["Ciência dos dados", "Python", "IBM"],
"Credithours": [2, 9, 5]

]))

O resultado de adicionar os documentos à coleção "cursos" é apresentado abaixo.

reconhecido: verdadeiro, inserdIds: '0': 1, '1': 2, '2': 3

Exemplo # 1: Consulta do Operador $ Addtoset em MongoDB para anexar o valor em um campo de matriz

Aqui, estamos anexando o novo valor em campo usando o operador $ addtoset. Na consulta do MongoDB, empregamos o método update () na coleção "cursos". O método update () insere ainda mais a condição “campo”: “cs” antes do operador $ addtoset. Em primeiro lugar, o documento será pesquisado, que é definido com o valor "CS" contra a coluna "Campo" na coleção. Quando o documento será correspondido, o operador $ addtoset prosseguirá com o operador de anexar o valor. Fornecemos ao $ Addtoset Operator com o campo de matriz “cursos” para anexar um novo elemento de matriz de valor “Contas”.

dB.Cursos.update ("campo": "cs", $ addtoset: "cursos": "contas")

A saída mostra que o novo elemento da matriz "contas" é anexado no campo "cursos".


reconhecido: verdadeiro,
inserdId: nulo,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0

Examinamos nossa coleção para confirmar a modificação. O campo da matriz “cursos” é modificado com sucesso com o novo valor “contas”.


_id: 2,
Campo: 'CS',
Cursos: ['python', 'networking', 'computação', 'contas'],
Credithours: [8, 4, 2]

Exemplo # 2: Consulta do Operador $ Addtoset em MongoDB para adicionar um novo campo

Na consulta acima, o operador $ addtoset é utilizado para anexar o novo valor no campo existente. Além disso, podemos inserir o novo campo no documento usando o operador $ addtoset no método update (). Vamos ter a seguinte consulta do MongoDB. Definimos o método update () em que a expressão ““ _id ”: 2” é fornecida para corresponder a esse documento específico. Em seguida, atribuímos o operador $ addtoset para adicionar o novo campo junto com o novo valor. Aqui, adicionamos o campo de matriz "professor" que não existe nos documentos da coleção "cursos". O campo "Professores" é atribuído com uma variedade de nomes dos professores.

dB.Cursos.atualizar(
"_id": 2,
$ addtoset: "Professores": ["Sr. Sam", "Ms Alice"]
)

O “ModifiedCount: 1” na saída a seguir mostra que o documento é atualizado com o novo campo “Professores” e os valores da matriz.


reconhecido: verdadeiro,
inserdId: nulo,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0

Agora, quando os documentos são verificados, ele apareceu com os novos resultados da atualização da seguinte forma:


_id: 2,
Campo: 'CS',
Cursos: ['python', 'networking', 'computação', 'contas'],
Credithours: [8, 4, 2, 7, 3],
Professores: [['Sr. Sam', 'Sra. Alice']]

Exemplo # 3: Consulta do Operador $ Addtoset em MongoDB para adicionar uma matriz na matriz existente

Além disso, podemos adicionar uma nova matriz inteira à matriz já presente usando o operador $ addtoset. Toda a matriz é anexada como uma matriz separada. Aqui, demos uma consulta a esta afirmação. Temos um método update () ao qual atribuímos uma condição "_id": 3 como um primeiro parâmetro. Portanto, o documento com o número "_id" "3" será correspondido com a condição de atualização e, em seguida, o próximo parâmetro prosseguirá. O próximo parâmetro do método update () é o método "$ addtoset" para adicionar a matriz à matriz existente. Especificamos a matriz “[3, 1, 2]” para o campo “Credithours”. Esta matriz será adicionada como uma matriz separada dentro da matriz existente do campo "Credithours".

dB.Cursos.atualizar(
"_id": 3,
$ addtoset: "credithours": [3, 1, 2]
)

As informações a seguir indicam que a matriz é adicionada à presente matriz:


reconhecido: verdadeiro,
inserdId: nulo,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0

O documento mostrado abaixo é atualizado com a nova modificação que fizemos.


_id: 3,
Campo: 'se',
Cursos: ['Data Science', 'Python', 'IBM'],
Credithours: [2, 9, 5, [3, 1, 2]]

Exemplo # 4: Consulta do Operador $ Addtoset em MongoDB para adicionar vários valores

O $ addtoset nos permite adicionar mais de um valor ao mesmo tempo em uma matriz, tomando o $ cada operador como um parâmetro. O $ cada operador é empregado para anexar várias entradas a uma matriz fornecida. Aqui, demos uma consulta em que temos que satisfazer a condição "" _id ": 2" do método update (). Em seguida, temos o operador $ addtoset, onde empregamos o $ cada operador para adicionar os dois valores "7" e "3" no campo "Credithours".

dB.Cursos.update ("_id": 2, $ addtoset: "credithours": $ cada: [7,3]);

A consulta acima executada exibiu a saída de confirmação que indica que os valores são inseridos no documento correspondente.


reconhecido: verdadeiro,
inserdId: nulo,
MatchedCount: 1,
ModifiedCount: 1,
UPSERTEDCOUNT: 0

Os dois elementos da matriz "7" e "3" são anexados no campo da matriz "credithours".


_id: 2,
Campo: 'CS',
Cursos: ['python', 'networking', 'computação', 'contas'],
Credithours: [8, 4, 2, 7, 3]

Exemplo # 5: consulta do operador $ addtoset em MongoDB para adicionar o valor existente

Quando o valor da matriz já está presente, tentamos inserir esse valor novamente no campo, então o operador $ addsetto não faz nada. Para dar de outra forma, o $ addtoset agrega apenas um valor se ainda não existir. Lá, demos uma consulta na concha do MongoDB, onde utilizamos o método update (). Dentro do método update (), passamos a condição de que o documento tenha o "_id" igual a "1". Depois disso, chamamos o operador $ addtoset, que leva o campo de "cursos" com o valor do parâmetro "adição" "banco de dados". O "banco de dados" já existe no documento especificado para que o operador $ addtoset não atualize este valor.

dB.Cursos.atualizar(
_id: 1,
$ addtoset: "cursos": "banco de dados"
)

Podemos ver que a opção "ModifiedCount" tem um valor "0" que mostra que o documento não é modificado.


reconhecido: verdadeiro,
inserdId: nulo,
MatchedCount: 1,
ModifiedCount: 0,
UPSERTEDCOUNT: 0

O documento correspondente também é verificado abaixo para exibir que os valores já existentes não podem ser adicionados novamente pelo operador $ addtoset.


_id: 1,
Campo: 'It',
Cursos: ['Desenvolvimento da Web', 'Database', 'Python'],
Credithours: [5, 2, 7, 3]

Conclusão

O artigo é sobre a discussão do operador MongoDB $ Addtoset. Vimos a operação $ addtoset na consulta de atualização do MongoDB. O primeiro exemplo é para $ Addtoset Operator Anexe o valor exclusivo na matriz do documento. Adicionamos então o campo de inexistência com o operador $ addtoset. A nova matriz também é anexada à matriz já especificada. Depois disso, anexamos a matriz com várias entradas e tentamos inserir o valor duplicado na matriz com o operador $ addtoset.