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.