Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mongodb中将价格从字符串转换为int并通过$project传递_Mongodb - Fatal编程技术网

如何在mongodb中将价格从字符串转换为int并通过$project传递

如何在mongodb中将价格从字符串转换为int并通过$project传递,mongodb,Mongodb,在这里,我计算计数和价格,根据我得到的计数,但总价格为0。如何发送价格合计 db.connect(function(err) { if (err) { res.sendStatus(510); } else { var collection = db.get().collection('Order'); collection.aggregate( [

在这里,我计算计数和价格,根据我得到的计数,但总价格为0。如何发送价格合计

 db.connect(function(err) {
        if (err) {
            res.sendStatus(510);
        } else {
            var collection = db.get().collection('Order');
            collection.aggregate(
                [

                    {
                        "$match": {
                            "$and": [{
                                    "createdDate": {
                                        "$gte": dateFrom
                                    }
                                },
                                {
                                    "createdDate": {
                                        "$lte": dateTo
                                    }
                                }
                            ]
                        }
                    },
                    {
                        "$project": {
                            createdDate: {
                                $dateToString: { format: "%Y-%m-%d", date: "$createdDate" },

                            },
                            paymentType: "$paymentType",
                            price:"$price"
                        }
                    },
                    {
                        "$group": {
                            "_id": {
                                "createdDate": "$createdDate",
                                "paymentType": "$paymentType"
                            },
                            "COUNT(_id)": {"$sum": 1},
                            "TOTALPRICE": { "$sum" : "$price" }
                        }
                    },
                    {
                        "$project": {
                            "COUNT": "$COUNT(_id)",
                            "TOTALPRICE" : "$TOTALPRICE",
                            "createdDate": "$_id.createdDate",
                            "paymentType": "$_id.paymentType",
                            "_id": 0
                        }
                    },
                    {
                        "$sort": {
                            "createdDate": 1
                        }
                    }
                ], {
                    "allowDiskUse": true
                }
            )
查询响应为: 计数:1 总价:0 创建日期:2019-09-24 付款方式:cod

总价格为0,即70

您需要在$group之前将价格添加到$projection步骤:

                    {
                        "$project": {
                            createdDate: {
                                $dateToString: { format: "%Y-%m-%d", date: "$createdDate" },

                            },
                            paymentType: "$paymentType",
                            price: "$price"
                        }
                    }

否则,由于投影阶段将其删除,您将对不再存在的字段求和,因此0。

如何在mongodb中将价格从字符串转换为int?我尝试了toInt,但它不起作用如果您使用的是mongo版本4.0+只需使用$toInt,否则您需要在代码中完成。我的mongodb版本是3