diff --git a/extra/mongodb/tuple/persistent/persistent.factor b/extra/mongodb/tuple/persistent/persistent.factor index bc6a6c0f80..d24e88f90e 100644 --- a/extra/mongodb/tuple/persistent/persistent.factor +++ b/extra/mongodb/tuple/persistent/persistent.factor @@ -78,9 +78,6 @@ CONSTRUCTOR: cond-value ( value quot -- cond-value ) ; : prepare-assoc ( tuple -- assoc mirror tuple assoc ) H{ } clone swap [ ] keep pick ; inline -: ensure-mdb-info ( tuple -- tuple ) - dup id>> [ >>id ] unless ; inline - : with-object-map ( quot: ( -- ) -- store-assoc ) [ H{ } clone dup object-map ] dip with-variable ; inline @@ -92,11 +89,14 @@ PRIVATE> GENERIC: tuple>storable ( tuple -- storable ) +: ensure-oid ( tuple -- tuple ) + dup id>> [ >>id ] unless ; inline + M: mdb-persistent tuple>storable ( mdb-persistent -- object-map ) '[ _ [ tuple>assoc ] write-mdb-persistent drop ] with-object-map ; inline M: mdb-persistent tuple>assoc ( tuple -- assoc ) - ensure-mdb-info (tuple>assoc) ; + ensure-oid (tuple>assoc) ; M: tuple tuple>assoc ( tuple -- assoc ) (tuple>assoc) ; diff --git a/extra/mongodb/tuple/tuple.factor b/extra/mongodb/tuple/tuple.factor index df5a541f66..2f235f74a0 100644 --- a/extra/mongodb/tuple/tuple.factor +++ b/extra/mongodb/tuple/tuple.factor @@ -61,7 +61,7 @@ PRIVATE> : update-tuple ( tuple -- ) [ tuple-collection name>> ] - [ id-selector ] + [ ensure-oid id-selector ] [ tuple>assoc ] tri >upsert update ;