我正在努力解决一些看似难以置信的问题。如果下面列出的transaction_date(顺便说一下是一个字符串,而我似乎无法将其转换为爱情或金钱的ISODate)是在UTC时间,那我怎么能查询一个月的范围(如果这是一个约会)并总结销售额?
我不想要的是UTC月份,我想要本地时区月份。所以我想我的问题是双重的,
谢谢,马特
{
"_id" : ObjectId("5ab485c669150d532c41769f"),
"object_origin" : "vend",
"company" : "5a9a73bb-0c5a-41db-8d06-76ac2d1e04b0",
"connection" : "2f758916-2eb1-4d95-a3bb-7d6258bc2143",
"object_creation_date" : ISODate("2018-03-16T10:40:20.875+13:00"),
"transaction_date" : "2018-03-07T11:36:48",
"transaction_gross_value" : 165,
"transaction_net_value" : 137.5,
"transaction_tax_value" : 27.5,
"transaction_cost_value" : 80,
"object_class" : "goods-service-transaction",
"object_origin_category" : "point-of-sale",
"object_type" : "receipt",
"object_origin_type" : "offline",
"transaction_reference" : "119",
"transaction_status" : "CLOSED",
"transaction_currency" : "GBP",
"party_identifier" : "WALKIN",
"staff_identifier" : "02dcd191-ae2b-11e6-f485-79681a952bd4",
"staff_name" : "uat2@9spokes.com",
"line_items" : [
{
"item_name" : "Dress Shirt / Polyester / Large",
"item_system_id" : "5051599d-40c2-a66a-11e8-21fbce105df0",
"item_identifier" : "10024",
"item_category" : "sales-revenue",
"item_quantity" : 1,
"item_net_unit_sale_value" : 62.5,
"item_net_unit_discount_value" : 0,
"item_net_unit_member_value" : 0,
"item_net_unit_cost_value" : 60,
"item_unit_tax_value" : 12.5,
"item_price_list_reference" : 0,
"item_total_sale_value" : 62.5,
"item_total_tax_value" : 12.5
},
{
"item_name" : "Dress Shirt / Cotton / Large",
"item_system_id" : "5051599d-40c2-a66a-11e8-21fbd07bb8a4",
"item_identifier" : "10021",
"item_category" : "sales-revenue",
"item_quantity" : 1,
"item_net_unit_sale_value" : 75,
"item_net_unit_discount_value" : 0,
"item_net_unit_member_value" : 0,
"item_net_unit_cost_value" : 20,
"item_unit_tax_value" : 15,
"item_price_list_reference" : 0,
"item_total_sale_value" : 75,
"item_total_tax_value" : 15
}
]
}
答案 0 :(得分:1)
使用MongoDB 3.6,您可以使用 ISODate()
并设置时区。这将返回$gt
,您可以使用 $lt
或 db.collection.aggregate([{
"$project": {
"transaction_date": {
"$dateFromString": {
"dateString": "$transaction_date",
"timezone": "America/New_York"
}
}
}
}])
进行查询:
{
"_id": ObjectId("5ab485c669150d532c41769f"),
"transaction_date": ISODate("2018-03-07T16:36:48Z")
}
这将返回
NSDictionary *dict = @{
@"data": @[
@{
@"timings": @{
@"Sunrise": @"07:14 (PKT)",
@"Sunset": @"18:15 (PKT)",
@"Midnight": @"00:45 (PKT)"
}
},
@{
@"timings": @{
@"Sunrise": @"07:13 (PKT)",
@"Sunset": @"06:40 (PKT)",
@"Midnight": @"00:45 (PKT)"
}
}
]
};
NSArray *arrData = [NSArray arrayWithArray:[dict objectForKey:@"data"]];
[self saveinDatabase:arrData];
你可以在这里试试:mongoplayground.net/p/lfA33eBRx8p