Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Retorno do findOneAndUpdate

var documento = db.artigos.findOneAndUpdate({ 
    slug: "visualizando-dados-de-frequencia"
}, {
    $push: {
        comentarios: {
            $each: [
                {
                    nome: "José da Silva",
                    email: "js@gmail.com",
                    texto: "Muito Bom!",
                    data: ISODate('2019-09-24')
                }
            ],
            $position: 0
        }
    }
}, { returnNewDocument: true })

db.comentarios.insertOne({
    id_artigo: documento._id,
    nome: documento.nome,
    email: documento.email,
    texto: documento.texto,
    data: documento.data
})

Estou tentando pegar o campo nome da variável documento, mas ela não foi definida. Como devo fazer?

2 respostas

Oi Bruno,

Você está tentando executar este comando pelo VS Code ou pela linha de comando do MongoDB? a extensão do VS Code para o MongoDB, apesar de ser muito boa, não tem suporte para todas as funcionalidades do Mongo como o var.

Para executar este comando, abra a linha de comando do MongoDB digitando o comando mongo:

Depois, lembre-se de escolher o seu banco de dados utilizando o comando use. No curso, usei o banco com o nome de blog, então utilizei o comando:

use blog

Aí depois é só copiar e colar os dois comandos que eles devem funcionar, ah! lembrando que deve existir um documento no banco cujo campo slug seja exatamente visualizando-dados-de-frequencia para ele funcionar.

Se ainda continuar com erro, posta aqui que a gente tenta te ajudar :) bons estudos!

solução!

Olá Giovanni,

Primeiramente, meus parabéns pelo curso, ficou muito bom

Eu estava executando no terminal, estava conseguindo executar normalmente.

Na verdade, o que eu queria era não ter que reescrever as informações , por exemplo o nome, na hora de inserir na collection comentários.

Acabei conseguindo fazer o que eu queria. Capturando os dados da variável documento.

db.comentarios.insertOne({
    id_artigo: documento._id,
    nome: documento.comentarios[0].nome,
    email: documento.comentarios[0].email,
    texto: documento.comentarios[0].texto,
    data: documento.comentarios[0].data
})