@@ -59,11 +59,11 @@ module.exports =
5959
6060 var keys = _interopRequire ( __webpack_require__ ( 4 ) ) ;
6161
62- var omit = _interopRequire ( __webpack_require__ ( 7 ) ) ;
62+ var omit = _interopRequire ( __webpack_require__ ( 5 ) ) ;
6363
64- var map = _interopRequire ( __webpack_require__ ( 5 ) ) ;
64+ var map = _interopRequire ( __webpack_require__ ( 6 ) ) ;
6565
66- var isEmpty = _interopRequire ( __webpack_require__ ( 6 ) ) ;
66+ var isEmpty = _interopRequire ( __webpack_require__ ( 7 ) ) ;
6767
6868 var DSUtils = JSData . DSUtils ;
6969 var deepMixIn = DSUtils . deepMixIn ;
@@ -252,6 +252,7 @@ module.exports =
252252 } else if ( ! r ) {
253253 reject ( new Error ( "Not Found!" ) ) ;
254254 } else {
255+ r . _id = r . _id . valueOf ( ) ;
255256 resolve ( r ) ;
256257 }
257258 } ) ;
@@ -270,6 +271,9 @@ module.exports =
270271 if ( err ) {
271272 reject ( err ) ;
272273 } else {
274+ r . forEach ( function ( _r ) {
275+ _r . _id = _r . _id . valueOf ( ) ;
276+ } ) ;
273277 resolve ( r ) ;
274278 }
275279 } ) ;
@@ -283,11 +287,17 @@ module.exports =
283287 attrs = removeCircular ( omit ( attrs , resourceConfig . relationFields || [ ] ) ) ;
284288 return this . getClient ( ) . then ( function ( client ) {
285289 return new DSUtils . Promise ( function ( resolve , reject ) {
286- client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) . insert ( attrs , options , function ( err , r ) {
290+ var collection = client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) ;
291+ var method = collection . insertOne ? DSUtils . isArray ( attrs ) ? "insertMany" : "insertOne" : "insert" ;
292+ collection [ method ] ( attrs , options , function ( err , r ) {
287293 if ( err ) {
288294 reject ( err ) ;
289295 } else {
290- resolve ( r [ 0 ] ) ;
296+ r = r . ops ? r . ops : r ;
297+ r . forEach ( function ( _r ) {
298+ _r . _id = _r . _id . valueOf ( ) ;
299+ } ) ;
300+ resolve ( DSUtils . isArray ( attrs ) ? r : r [ 0 ] ) ;
291301 }
292302 } ) ;
293303 } ) ;
@@ -305,7 +315,8 @@ module.exports =
305315 return new DSUtils . Promise ( function ( resolve , reject ) {
306316 var params = { } ;
307317 params [ resourceConfig . idAttribute ] = id ;
308- client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) . update ( params , { $set : attrs } , options , function ( err ) {
318+ var collection = client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) ;
319+ collection [ collection . updateOne ? "updateOne" : "update" ] ( params , { $set : attrs } , options , function ( err ) {
309320 if ( err ) {
310321 reject ( err ) ;
311322 } else {
@@ -337,7 +348,8 @@ module.exports =
337348 return item [ resourceConfig . idAttribute ] ;
338349 } ) ;
339350 return new DSUtils . Promise ( function ( resolve , reject ) {
340- client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) . update ( query , queryOptions , _options , function ( err ) {
351+ var collection = client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) ;
352+ collection [ collection . updateMany ? "updateMany" : "update" ] ( query , queryOptions , _options , function ( err ) {
341353 if ( err ) {
342354 reject ( err ) ;
343355 } else {
@@ -362,7 +374,8 @@ module.exports =
362374 return new DSUtils . Promise ( function ( resolve , reject ) {
363375 var params = { } ;
364376 params [ resourceConfig . idAttribute ] = id ;
365- client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) . remove ( params , options , function ( err ) {
377+ var collection = client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) ;
378+ collection [ collection . deleteOne ? "deleteOne" : "remove" ] ( params , options , function ( err ) {
366379 if ( err ) {
367380 reject ( err ) ;
368381 } else {
@@ -382,7 +395,8 @@ module.exports =
382395 deepMixIn ( options , _this . getQueryOptions ( resourceConfig , params ) ) ;
383396 var query = _this . getQuery ( resourceConfig , params ) ;
384397 return new DSUtils . Promise ( function ( resolve , reject ) {
385- client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) . remove ( query , options , function ( err ) {
398+ var collection = client . collection ( resourceConfig . table || underscore ( resourceConfig . name ) ) ;
399+ collection [ collection . deleteMany ? "deleteMany" : "remove" ] ( query , options , function ( err ) {
386400 if ( err ) {
387401 reject ( err ) ;
388402 } else {
@@ -428,131 +442,19 @@ module.exports =
428442/* 5 */
429443/***/ function ( module , exports , __webpack_require__ ) {
430444
431- module . exports = require ( "mout/array/map " ) ;
445+ module . exports = require ( "mout/object/omit " ) ;
432446
433447/***/ } ,
434448/* 6 */
435449/***/ function ( module , exports , __webpack_require__ ) {
436450
437- module . exports = require ( "mout/lang/isEmpty " ) ;
451+ module . exports = require ( "mout/array/map " ) ;
438452
439453/***/ } ,
440454/* 7 */
441455/***/ function ( module , exports , __webpack_require__ ) {
442456
443- var slice = __webpack_require__ ( 8 ) ;
444- var contains = __webpack_require__ ( 9 ) ;
445-
446- /**
447- * Return a copy of the object, filtered to only contain properties except the blacklisted keys.
448- */
449- function omit ( obj , var_keys ) {
450- var keys = typeof arguments [ 1 ] !== 'string' ? arguments [ 1 ] : slice ( arguments , 1 ) ,
451- out = { } ;
452-
453- for ( var property in obj ) {
454- if ( obj . hasOwnProperty ( property ) && ! contains ( keys , property ) ) {
455- out [ property ] = obj [ property ] ;
456- }
457- }
458- return out ;
459- }
460-
461- module . exports = omit ;
462-
463-
464-
465-
466- /***/ } ,
467- /* 8 */
468- /***/ function ( module , exports , __webpack_require__ ) {
469-
470-
471-
472- /**
473- * Create slice of source array or array-like object
474- */
475- function slice ( arr , start , end ) {
476- var len = arr . length ;
477-
478- if ( start == null ) {
479- start = 0 ;
480- } else if ( start < 0 ) {
481- start = Math . max ( len + start , 0 ) ;
482- } else {
483- start = Math . min ( start , len ) ;
484- }
485-
486- if ( end == null ) {
487- end = len ;
488- } else if ( end < 0 ) {
489- end = Math . max ( len + end , 0 ) ;
490- } else {
491- end = Math . min ( end , len ) ;
492- }
493-
494- var result = [ ] ;
495- while ( start < end ) {
496- result . push ( arr [ start ++ ] ) ;
497- }
498-
499- return result ;
500- }
501-
502- module . exports = slice ;
503-
504-
505-
506-
507- /***/ } ,
508- /* 9 */
509- /***/ function ( module , exports , __webpack_require__ ) {
510-
511- var indexOf = __webpack_require__ ( 10 ) ;
512-
513- /**
514- * If array contains values.
515- */
516- function contains ( arr , val ) {
517- return indexOf ( arr , val ) !== - 1 ;
518- }
519- module . exports = contains ;
520-
521-
522-
523- /***/ } ,
524- /* 10 */
525- /***/ function ( module , exports , __webpack_require__ ) {
526-
527-
528-
529- /**
530- * Array.indexOf
531- */
532- function indexOf ( arr , item , fromIndex ) {
533- fromIndex = fromIndex || 0 ;
534- if ( arr == null ) {
535- return - 1 ;
536- }
537-
538- var len = arr . length ,
539- i = fromIndex < 0 ? len + fromIndex : fromIndex ;
540- while ( i < len ) {
541- // we iterate over sparse items since there is no way to make it
542- // work properly on IE 7-8. see #64
543- if ( arr [ i ] === item ) {
544- return i ;
545- }
546-
547- i ++ ;
548- }
549-
550- return - 1 ;
551- }
552-
553- module . exports = indexOf ;
554-
555-
457+ module . exports = require ( "mout/lang/isEmpty" ) ;
556458
557459/***/ }
558460/******/ ] ) ;
0 commit comments