[ MDB_OID_FIELD swap at ] keep
H{ } clone [ set-at ] keep ;
--<PRIVATE
-
-: index-collection ( -- ns )
- mdb-instance name>> "%s.system.indexes" sprintf ; inline
-
-: namespaces-collection ( -- ns )
- mdb-instance name>> "%s.system.namespaces" sprintf ; inline
-
-: cmd-collection ( -- ns )
- mdb-instance name>> "%s.$cmd" sprintf ; inline
-
-: index-ns ( colname -- index-ns )
- [ mdb-instance name>> ] dip "%s.%s" sprintf ; inline
-
-: send-message ( message -- )
- [ mdb-connection> handle>> ] dip '[ _ write-message ] with-stream* ;
-
-DEFER: check-collection
-: send-query-plain ( query-message -- result )
- [ check-collection ] change-collection
- [ mdb-connection> handle>> ] dip
- '[ _ write-message read-message ] with-stream* ;
--
: make-cursor ( mdb-result-msg -- cursor/f )
dup cursor>> 0 >
[ [ cursor>> ] [ collection>> ] [ requested#>> ] tri <mdb-cursor> ]
H{ } clone
[ [ "index" ] dip set-at ] keep
[ [ "deleteIndexes" ] dip set-at ] keep
- [ cmd-collection ] dip <mdb-query-msg> find-one
- check-ok [ "could not drop index" throw ] unless ;
+ [ cmd-collection ] dip <mdb-query-msg>
+ find-one drop ;
: <update> ( collection selector object -- update-msg )
- [ ensure-collection ] 2dip <mdb-update-msg> ;
+ [ check-collection ] 2dip <mdb-update-msg> ;
: >upsert ( mdb-update-msg -- mdb-update-msg )
1 >>upsert? ;