Javascript 对象或数组中对象的count属性存在问题
我试图将一个对象的属性计数到另一个对象中,但得到了一个错误的值:我想将order对象的productInfo属性中的对象计数到15,但我的函数返回46Javascript 对象或数组中对象的count属性存在问题,javascript,node.js,Javascript,Node.js,我试图将一个对象的属性计数到另一个对象中,但得到了一个错误的值:我想将order对象的productInfo属性中的对象计数到15,但我的函数返回46 router.get("/product", isLoggedIn, function (req, res) { products.find({}, function (err, products) { if (err) { console.log("ERROR!"); } else
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
});
}
});
}
});
});
以下是我的模型:
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);
以及:
我使用替换解决此问题:
_.keys(orders[0].productInfo).length,
与:
},]
您的productinfo模型后面有一个逗号。不确定这是否会造成问题。
_.keys(orders[0].productInfo).length,
orders[0].productInfo.length