Monday, 24 April 2017

issues with count property of object inside object or array

I try to count property of one object inside another but get a wrong value: I want to count the object inside property of productInfo of order object which is 15 but my function return 46.

router.get("/product", isLoggedIn, function (req, res) {
    products.find({}, function (err, products) {
        if (err) {
            console.log("ERROR!");
        } else {
            orders.find({
                customerInfo: req.user
            }, function (err, orders) {
                if (err) {
                    console.log("ERROR!");
                } else {
                    res.render("allProduct", {
                        data1: _.keys(orders[0].productInfo).length,//here object must counted!
                        data:products
                    });
                }
            });
        }
    });
});

and here are my models:

var mongoose = require("mongoose");

var order = new mongoose.Schema({
    orderNo: Number,
    customerInfo: [{
            type: mongoose.Schema.Types.ObjectId,
            ref: "User"
        }],
    productInfo: [{
            type: mongoose.Schema.Types.ObjectId,
            ref: "product"
        },]
});

//EXPORT
module.exports = mongoose.model("order", order);

and:

var mongoose =require("mongoose");

var product = new mongoose.Schema({
    productNo: Number,
    productName: String,
    productDes:String,
    productPrice:Number,
});

//EXPORT
module.exports = mongoose.model("product",product);



via milad fahimi

No comments:

Post a Comment