I have been with this problem for two days, I want to see if you can help me, the problem is this error.
when I try to do this query.
db.getCollection('inversionista').find({broker: id}).forEach(function(scope) {
db.getCollection('puja').find({inversionista: scope._id}).forEach(function(scope) {
const subasta = db.getCollection('subasta').findOne({_id: scope.subasta})
const factura = db.getCollection('factura').findOne({_id: subasta.factura})
const pyme = db.getCollection('pyme').findOne({_id: factura.proveedor})
const inversionista = db.getCollection('inversionista').findOne({_id: scope.inversionista})
const dias = factura.dias
var percetange = 0;
var item;
var monto;
if(pyme.broker && pyme.broker == id){
if (dias <= 45) {
percetange = 0.003;
} else if (dias > 45 && dias <= 75) {
percetange = 0.004;
} else if (dias > 75) {
percetange = 0.005;
}
monto = factura.montoSubastar;
item = {
valueId: pyme.razon_social,
tipoId: 'FACTURA',
subastaId: scope.subasta,
moneda: factura.moneda,
fechaRegistro: scope.informacionPagoGarantia.fechaPagoRealCavaliBLP,
monto: percetange * monto
}
db.getCollection('broker').findOneAndUpdate({
_id: inversionista.broker,
$push: { transacciones: {$each: [item] } } ,
})
}
if (dias <= 45) {
percetange = 0.0035;
} else if (dias > 45 && dias <= 75) {
percetange = 0.0065;
} else if (dias > 75) {
percetange = 0.0085;
}
monto = factura.monto_adjudicado;
item = {
valueId: inversionista.nombres + ' ' + inversionista.apellidos,
subastaId: scope.subasta,
tipoId: 'INVERSIONISTA',
moneda: factura.moneda,
fechaRegistro: scope.informacionPagoGarantia.fechaPagoRealCavaliBLP,
monto: percetange * monto
};
db.getCollection('broker').findOneAndUpdate({
_id: inversionista.broker,
$push: { transacciones: { $each: [item] } },
});
});
});
error that I have that this.
can’t convert undefined to object :
DBCollection.prototype.findOneAndUpdate