Two query operations in a collection

0

I'm new to Node JS and mongoDB and am trying to run a find and then a update , but it seems that's not possible. Anyone have an idea?

function CarrinhoDAO(conexao) {
    this._conexao = conexao();
}

CarrinhoDAO.prototype.retira = function(res, email_cliente, id_produto, retira) {
    this._conexao.open(function(erro, mongocliente) {
        mongocliente.collection("carrinhos", function(erro, collection) {
            collection.find({
                $and: [
                    { cliente: email_cliente },
                    { estado: "aberto" },
                    { lista_compras: { $size: 1 } }
                ]
            }).toArray(function(erro, qtd) {
                if (qtd.length == 1){
                     collection.update({
                    $and: [
                        { cliente: email_cliente },
                        { estado: "aberto" }
                    ]
                }, {
                    $pull: { lista_compras: { id_produto_carrinho: objectId(id_produto) } },
                    $unset: { supermercado: 1 }
                }, function(erro, records) {
                    if (erro) {
                        res.end(erro);
                    } else {
                        res.json(records);
                    }
                });
                }
            });
        }
}

The result to get from find depends on whether or not update is executed.

    
asked by anonymous 29.09.2017 / 16:38

1 answer

-1

You can use: db.collection.findOneAndUpdate

retira.findOneAndUpdate({age: 17}, {$set:{name:"Naomi"}}, 
{new: true}, function(err, doc){
if(err){
    console.log("Something wrong when updating data!");
}

console.log(doc);});
    
01.10.2017 / 01:47