我正在尝试使用PHP进行汇总。我的Mongo脚本是:
var start = ISODate("2018-06-01T00:00:00.000Z").getTime() / 1000;
var end = ISODate("2018-06-30T23:59:59.000Z").getTime() / 1000;
print("nodo;cantidad");
db.reclamosTecnicos.aggregate([
{ $match : { tipoResolucion: {$eq: 0}, fechaCarga: { $gt: start, $lt: end } } },
{ $group : { _id : "$cliente.nodoCrm" , cantidad : {$sum : 1} } }
]).forEach(function(doc){
print(doc._id+";"+doc.cantidad);
})
哪个给我以下结果:
我的PHP代码如下:
$start = new MongoDB\BSON\UTCDateTime(strtotime("01-06-2018"));
$end = new MongoDB\BSON\UTCDateTime(strtotime("30-06-2018"));
$filter= [
['$match' =>
[
'tipoResolucion' => array('$eq' => 0),
'fechaCarga' => array(
'$gte' => $start,
'$lte' => $end
)
]
],
['$group' => ['_id' => '$cliente.nodoCrm', 'cantidad' => ['$sum' => 1]]]
];
$cursor = (new MongoDB\Client('mongodb://cantpost the address'))->moica->reclamosTecnicos->aggregate($filter);
foreach ($cursor as $reclamo) {
printf("%s tiene %d RTs\n", $reclamo['_id'], $reclamo['cantidad']);
}
我的问题是没有给我任何结果。您是否知道我可能做错了什么?
谢谢!
更新:我检查了$ start和$ end的格式是否正确(它们是时间戳,如记录),并且格式正确。我做了一个var_dump()并得到了以下结果:
object(MongoDB\Driver\Cursor)#7 (10) { ["database"]=> string(5) "moica" ["collection"]=> NULL ["query"]=> NULL ["command"]=> object(MongoDB\Driver\Command)#6 (1) { ["command"]=> object(stdClass)#18 (4) { ["aggregate"]=> string(16) "reclamosTecnicos" ["pipeline"]=> array(2) { [0]=> object(stdClass)#13 (1) { ["$match"]=> object(stdClass)#9 (2) { ["tipoResolucion"]=> object(stdClass)#12 (1) { ["$eq"]=> int(0) } ["fechaCarga"]=> object(stdClass)#8 (2) { ["$gt"]=> object(MongoDB\BSON\UTCDateTime)#10 (1) { ["milliseconds"]=> string(10) "1527804000" } ["$lt"]=> object(MongoDB\BSON\UTCDateTime)#5 (1) { ["milliseconds"]=> string(10) "1530309600" } } } } [1]=> object(stdClass)#16 (1) { ["$group"]=> object(stdClass)#15 (2) { ["_id"]=> string(16) "$cliente.nodoCrm" ["cantidad"]=> object(stdClass)#14 (1) { ["$sum"]=> int(1) } } } } ["allowDiskUse"]=> bool(false) ["cursor"]=> object(stdClass)#17 (0) { } } } ["readPreference"]=> object(MongoDB\Driver\ReadPreference)#11 (1) { ["mode"]=> string(7) "primary" } ["session"]=> NULL ["isDead"]=> bool(false) ["currentIndex"]=> int(0) ["currentDocument"]=> NULL ["server"]=> object(MongoDB\Driver\Server)#4 (10) { ["host"]=> string(34) "CANT POST THE ADDRESS" ["port"]=> int(27017) ["type"]=> int(2) ["is_primary"]=> bool(false) ["is_secondary"]=> bool(false) ["is_arbiter"]=> bool(false) ["is_hidden"]=> bool(false) ["is_passive"]=> bool(false) ["last_is_master"]=> array(9) { ["ismaster"]=> bool(true) ["msg"]=> string(8) "isdbgrid" ["maxBsonObjectSize"]=> int(16777216) ["maxMessageSizeBytes"]=> int(48000000) ["maxWriteBatchSize"]=> int(1000) ["localTime"]=> object(MongoDB\BSON\UTCDateTime)#18 (1) { ["milliseconds"]=> string(13) "1538756257349" } ["maxWireVersion"]=> int(5) ["minWireVersion"]=> int(0) ["ok"]=> float(1) } ["round_trip_time"]=> int(4) } }
我希望这可以给您提示我做错了什么。
这是一个文档示例:
这是一个示例文档:
{
"_id" : ObjectId("5b396b0b51b99745e229b818"),
"idReclamo" : 9428849,
"cliente" : {
"idCliente" : 4690204,
"nombre" : "NOMBRE",
"apellido" : "PAZ",
"calle" : "CALLE",
"nro" : 2943,
"piso" : null,
"depto" : null,
"ciudad" : "BS.AIRES",
"localidad" : "INGENIERO MASCHWITZ",
"partido" : "ESCOBAR",
"nodoCrm" : "ES12",
"hub" : "ES",
"region" : "NORTE",
"geocodificacion" : {
"idgeo" : 1582517,
"lat" : 0,
"lng" : 0
},
"nodoRed" : {
"nodo" : [
"ES12B"
],
"nodoTxt" : "ES12B",
"nodoCmts" : "ES12B",
"hostname" : "TI9-CMTS",
"hub" : "TI",
"region" : "Norte",
"macdomain" : 1292
},
"infoCm" : [
{
"mac" : "5890436203ed",
"estado" : "up",
"niveles" : {
"pwrDs" : 3.4,
"pwrUs" : 46,
"snrDs" : 41.4,
"snrUs" : 35
},
"repositorio" : {
"mac" : "5890436203ed",
"firstseen" : 1530109321,
"lastseen" : 1530484521,
"vendor" : "SAGEMCOM",
"modelo" : "FAST3890V2",
"hwrev" : "V2.0",
"swrev" : "FAST3890_TLC_50.10.15.T2",
"sysORDescr" : "An agent which supports all MIBs required by the DOCSIS 3.1 OSS specification.",
"docsisVersion" : "D3.1",
"lastversioncheck" : 1530484521,
"ultimoCliente" : 4690204
},
"timestamp" : 1530489611
}
],
"infoCmCant" : 1
},
"motivoVisita" : {
"id" : 263,
"descripcion" : "CATV S/S CLIENTE.BA/TEL/CATV"
},
"tipoResolucion" : 0,
"telefono" : "0111564521333",
"jerarquia" : 1,
"estado" : "P",
"observacion" : "Abn S/S ctv, se reinicia se rebootea no responde. Sr. Ezequie. 1564521333 ",
"serviciosAfectados" : {
"catv" : true,
"bandaAncha" : false,
"telefonia" : false,
"uhf" : false
},
"fechaCarga" : 1530489595,
"fechaCargaStr" : "2018-07-01",
"fechaCargaDate" : ISODate("2018-07-01T23:59:55Z"),
"usuarioCarga" : {
"id" : 40467,
"descripcion" : "FPINEIRO-ATE FPINEIRO-ATE"
},
"fechaCierre" : null,
"fechaCierreStr" : null,
"fechaCierreDate" : null,
"usuarioCierre" : null,
"cierre" : null,
"fechaUltModif" : 1530489595,
"fechaUltModifStr" : "2018-07-01",
"fechaUltModifDate" : ISODate("2018-07-01T23:59:55Z"),
"usuarioUltModif" : {
"id" : 40467,
"descripcion" : "FPINEIRO-ATE FPINEIRO-ATE"
},
"otrs" : null,
"historialMovimientos" : null,
"timestampSincr" : 1530489611
}
谢谢!
答案 0 :(得分:0)
感谢Veeram,解决方案是使用strtotime(。)代替MongoDB \ BSON \ UTCDateTime(strtotime(。))