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