prettyprint prettyprint.custom prettyprint.sections sequences
sets splitting strings ;
FROM: ascii => ascii? ;
+FROM: math.bitwise => set-bit ;
IN: mongodb.driver
TUPLE: mdb-pool < pool mdb ;
[ check-collection ] 2dip <mdb-update-msg> ;
: >upsert ( mdb-update-msg -- mdb-update-msg )
- 1 >>upsert? ;
+ [ 0 set-bit ] change-update-flags ;
+
+: >multi ( mdb-update-msg -- mdb-update-msg )
+ [ 1 set-bit ] change-update-flags ;
: update ( mdb-update-msg -- )
send-message-check-error ;
"person \"persons\" { } { $[ \"ageIdx\" [ \"age\" asc ] key-spec <tuple-index> ] } define-persistent "
"\"db\" \"127.0.0.1\" 27017 <mdb>"
"person new \"Alfred\" >>name 57 >>age"
- "'[ _ save-tuple person new 57 >>age select-tuple ] with-db"
+ "'[ person ensure-table _ save-tuple person new 57 >>age select-tuple ] with-db"
"" }
;
TUPLE: mdb-update-msg < mdb-msg
{ collection string }
- { upsert? integer initial: 0 }
+ { update-flags integer initial: 0 }
{ selector assoc }
{ object assoc } ;
{
[ flags>> write-int32 ]
[ collection>> write-cstring ]
- [ upsert?>> write-int32 ]
+ [ update-flags>> write-int32 ]
[ selector>> assoc>stream ]
[ object>> assoc>stream ]
} cleave
IN: mongodb.tuple
-SINGLETONS: +fieldindex+ +compoundindex+ +deepindex+ +unique+ ;
-
SYNTAX: MDBTUPLE:
parse-tuple-definition
mdb-check-slots