1
1
'use strict' ;
2
- const Query = require ( '../connection/commands' ) . Query ;
2
+ // const Query = require('../connection/commands').Query;
3
+ const Msg = require ( '../connection/msg' ) . Msg ;
3
4
const KillCursor = require ( '../connection/commands' ) . KillCursor ;
4
5
const GetMore = require ( '../connection/commands' ) . GetMore ;
5
6
const calculateDurationInMs = require ( '../utils' ) . calculateDurationInMs ;
@@ -18,7 +19,7 @@ const SENSITIVE_COMMANDS = new Set([
18
19
] ) ;
19
20
20
21
// helper methods
21
- const extractCommandName = command => Object . keys ( command ) [ 0 ] ;
22
+ const extractCommandName = commandDoc => Object . keys ( commandDoc ) [ 0 ] ;
22
23
const namespace = command => command . ns ;
23
24
const databaseName = command => command . ns . split ( '.' ) [ 0 ] ;
24
25
const collectionName = command => command . ns . split ( '.' ) [ 1 ] ;
@@ -76,41 +77,44 @@ const extractCommand = command => {
76
77
} ;
77
78
}
78
79
79
- command = command instanceof Query ? command . query : command . command ;
80
- if ( command . $query == null ) {
81
- return command ;
80
+ if ( command instanceof Msg ) {
81
+ return command . command ;
82
82
}
83
83
84
- let result ;
85
- if ( command . ns === 'admin.$cmd' ) {
86
- // upconvert legacy command
87
- result = Object . assign ( { } , command . query . $query ) ;
88
- } else {
89
- // upconvert legacy find command
90
- result = { find : collectionName ( command ) } ;
91
- Object . keys ( LEGACY_FIND_QUERY_MAP ) . forEach ( key => {
92
- if ( typeof command . query [ key ] !== 'undefined' )
93
- result [ LEGACY_FIND_QUERY_MAP [ key ] ] = command . query [ key ] ;
84
+ if ( command . query && command . query . $query ) {
85
+ let result ;
86
+ if ( command . ns === 'admin.$cmd' ) {
87
+ // upconvert legacy command
88
+ result = Object . assign ( { } , command . query . $query ) ;
89
+ } else {
90
+ // upconvert legacy find command
91
+ result = { find : collectionName ( command ) } ;
92
+ Object . keys ( LEGACY_FIND_QUERY_MAP ) . forEach ( key => {
93
+ if ( typeof command . query [ key ] !== 'undefined' )
94
+ result [ LEGACY_FIND_QUERY_MAP [ key ] ] = command . query [ key ] ;
95
+ } ) ;
96
+ }
97
+
98
+ Object . keys ( LEGACY_FIND_OPTIONS_MAP ) . forEach ( key => {
99
+ if ( typeof command [ key ] !== 'undefined' ) result [ LEGACY_FIND_OPTIONS_MAP [ key ] ] = command [ key ] ;
94
100
} ) ;
95
- }
96
101
97
- Object . keys ( LEGACY_FIND_OPTIONS_MAP ) . forEach ( key => {
98
- if ( typeof command [ key ] !== 'undefined' ) result [ LEGACY_FIND_OPTIONS_MAP [ key ] ] = command [ key ] ;
99
- } ) ;
102
+ OP_QUERY_KEYS . forEach ( key => {
103
+ if ( command [ key ] ) result [ key ] = command [ key ] ;
104
+ } ) ;
100
105
101
- OP_QUERY_KEYS . forEach ( key => {
102
- if ( command [ key ] ) result [ key ] = command [ key ] ;
103
- } ) ;
106
+ if ( typeof command . pre32Limit !== 'undefined' ) {
107
+ result . limit = command . pre32Limit ;
108
+ }
104
109
105
- if ( typeof command . pre32Limit !== 'undefined' ) {
106
- result . limit = command . pre32Limit ;
107
- }
110
+ if ( command . query . $explain ) {
111
+ return { explain : result } ;
112
+ }
108
113
109
- if ( command . query . $explain ) {
110
- return { explain : result } ;
114
+ return result ;
111
115
}
112
116
113
- return result ;
117
+ return command . query ? command . query : command ;
114
118
} ;
115
119
116
120
const extractReply = ( command , reply ) => {
0 commit comments