@@ -54,7 +54,7 @@ public function __construct(LoggerInterface $logger = null, $prefix = 'MongoDB q
54
54
*
55
55
* @param array $query A query log array from Doctrine
56
56
*/
57
- public function logQuery ($ query )
57
+ public function logQuery (array $ query )
58
58
{
59
59
$ this ->queries [] = $ query ;
60
60
$ this ->processed = false ;
@@ -107,6 +107,12 @@ protected function processQueries()
107
107
$ grouped = array ();
108
108
$ ordered = array ();
109
109
foreach ($ this ->queries as $ query ) {
110
+ if (!isset ($ query ['query ' ]) || !isset ($ query ['fields ' ])) {
111
+ // no grouping necessary
112
+ $ ordered [] = array ($ query );
113
+ continue ;
114
+ }
115
+
110
116
$ cursor = serialize ($ query ['query ' ]).serialize ($ query ['fields ' ]);
111
117
112
118
// append if issued from cursor (currently just "sort")
@@ -180,15 +186,21 @@ protected function processQueries()
180
186
} elseif (isset ($ log ['execute ' ])) {
181
187
$ query .= '.execute() ' ;
182
188
} elseif (isset ($ log ['find ' ])) {
183
- $ query .= '.find( ' .static ::bsonEncode ($ log ['query ' ]);
184
- if (!empty ($ log ['fields ' ])) {
185
- $ query .= ', ' .static ::bsonEncode ($ log ['fields ' ]);
189
+ $ query .= '.find( ' ;
190
+ if ($ log ['query ' ] || $ log ['fields ' ]) {
191
+ $ query .= static ::bsonEncode ($ log ['query ' ]);
192
+ if ($ log ['fields ' ]) {
193
+ $ query .= ', ' .static ::bsonEncode ($ log ['fields ' ]);
194
+ }
186
195
}
187
196
$ query .= ') ' ;
188
197
} elseif (isset ($ log ['findOne ' ])) {
189
- $ query .= '.findOne( ' .static ::bsonEncode ($ log ['query ' ]);
190
- if (!empty ($ log ['fields ' ])) {
191
- $ query .= ', ' .static ::bsonEncode ($ log ['fields ' ]);
198
+ $ query .= '.findOne( ' ;
199
+ if ($ log ['query ' ] || $ log ['fields ' ]) {
200
+ $ query .= static ::bsonEncode ($ log ['query ' ]);
201
+ if ($ log ['fields ' ]) {
202
+ $ query .= ', ' .static ::bsonEncode ($ log ['fields ' ]);
203
+ }
192
204
}
193
205
$ query .= ') ' ;
194
206
} elseif (isset ($ log ['getDBRef ' ])) {
@@ -215,6 +227,15 @@ protected function processQueries()
215
227
}
216
228
}
217
229
}
230
+
231
+ if (!empty ($ query )) {
232
+ if ('. ' == $ query [0 ]) {
233
+ $ query = 'db ' .$ query ;
234
+ }
235
+
236
+ $ this ->formattedQueries [$ i ++] = $ query .'; ' ;
237
+ ++$ this ->nbRealQueries ;
238
+ }
218
239
}
219
240
220
241
static protected function bsonEncode ($ query , $ array = true )
0 commit comments