From 2a29d7fed42e2976273e0e41db40cbf62a6f825b Mon Sep 17 00:00:00 2001 From: Sascha Matzke Date: Wed, 11 Mar 2009 14:40:07 +0100 Subject: [PATCH] changed find, update and get-more --- .gitignore | 1 + mongodb/driver/driver.factor | 33 ++++++++++++++++++++------------- 2 files changed, 21 insertions(+), 13 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000..b25c15b81f --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/mongodb/driver/driver.factor b/mongodb/driver/driver.factor index f1dc204d1c..53dd4ee427 100644 --- a/mongodb/driver/driver.factor +++ b/mongodb/driver/driver.factor @@ -204,18 +204,21 @@ GENERIC# hint 1 ( mdb-query index-hint -- mdb-query ) M: mdb-query-msg hint ( mdb-query index-hint -- mdb-query ) >>hint ; +GENERIC: get-more ( mdb-cursor -- mdb-cursor objects ) +M: mdb-cursor get-more ( mdb-cursor -- mdb-cursor objects ) + [ [ collection>> ] [ return#>> ] [ id>> ] tri send-query ] + [ f f ] if* ; + GENERIC: find ( mdb-query -- cursor result ) M: mdb-query-msg find - send-query ; + send-query ; +M: mdb-cursor find + get-more ; GENERIC: explain ( mdb-query -- result ) M: mdb-query-msg explain t >>explain find [ drop ] dip ; -GENERIC: get-more ( mdb-cursor -- mdb-cursor objects ) -M: mdb-cursor get-more ( mdb-cursor -- mdb-cursor objects ) - [ [ collection>> ] [ return#>> ] [ id>> ] tri send-query ] - [ f f ] if* ; GENERIC: find-one ( mdb-query -- result ) M: mdb-query-msg find-one @@ -275,15 +278,19 @@ M: assoc ensure-index [ cmd-collection ] dip find-one objects>> first check-ok [ "could not drop index" throw ] unless ; -GENERIC: update ( collection selector object -- ) -M: assoc update - [ ensure-collection ] dip - send-message-check-error ; +: ( collection selector object -- update-msg ) + [ ensure-collection ] 2dip ; -GENERIC: update-unsafe ( collection selector object -- ) -M: assoc update-unsafe - [ ensure-collection ] dip - send-message ; +: >upsert ( mdb-update-msg -- mdb-update-msg ) + 1 >>upsert? ; + +GENERIC: update ( mdb-update-msg -- ) +M: mdb-update-msg update + send-message-check-error ; + +GENERIC: update-unsafe ( mdb-update-msg -- ) +M: mdb-update-msg update-unsafe + send-message ; GENERIC: delete ( collection selector -- ) M: assoc delete