Re: Insert copy of document into same document for versioning

From: John Menke <jmjava@xxxxxxxxx>
To: mongodb-user <mongodb-user@xxxxxxxxxxxxxxxx>
Date: Sun, 17 Apr 2016 05:25:42 -0700 (PDT)
Why ads?
looking at the update operators.  even though i can append to an array i am 
not sure i can get a reference to the current document inside an update.  I 
don't see an operator that give this reference.  Is there an operator that 
gives reference to current document in update?

Update Operators 
<https://docs.mongodb.org/manual/reference/operator/update/#id1>
Fields <https://docs.mongodb.org/manual/reference/operator/update/#fields>
NameDescription
$inc 
<https://docs.mongodb.org/manual/reference/operator/update/inc/#up._S_inc> Increments 
the value of the field by the specified amount.
$mul 
<https://docs.mongodb.org/manual/reference/operator/update/mul/#up._S_mul> Multiplies 
the value of the field by the specified amount.
$rename 
<https://docs.mongodb.org/manual/reference/operator/update/rename/#up._S_rename> Renames 
a field.
$setOnInsert 
<https://docs.mongodb.org/manual/reference/operator/update/setOnInsert/#up._S_setOnInsert> Sets 
the value of a field if an update results in an insert of a document. Has 
no effect on update operations that modify existing documents.
$set 
<https://docs.mongodb.org/manual/reference/operator/update/set/#up._S_set> Sets 
the value of a field in a document.
$unset 
<https://docs.mongodb.org/manual/reference/operator/update/unset/#up._S_unset> Removes 
the specified field from a document.
$min 
<https://docs.mongodb.org/manual/reference/operator/update/min/#up._S_min> Only 
updates the field if the specified value is less than the existing field 
value.
$max 
<https://docs.mongodb.org/manual/reference/operator/update/max/#up._S_max> Only 
updates the field if the specified value is greater than the existing field 
value.
$currentDate 
<https://docs.mongodb.org/manual/reference/operator/update/currentDate/#up._S_currentDate> Sets 
the value of a field to current date, either as a Date or a Timestamp.
Array <https://docs.mongodb.org/manual/reference/operator/update/#array>
Operators 
<https://docs.mongodb.org/manual/reference/operator/update/#operators>
NameDescription

<https://docs.mongodb.org/manual/reference/operator/update/positional/#up._S_> Acts 
as a placeholder to update the first element that matches the query 
condition in an update.
$addToSet 
<https://docs.mongodb.org/manual/reference/operator/update/addToSet/#up._S_addToSet> Adds 
elements to an array only if they do not already exist in the set.
$pop 
<https://docs.mongodb.org/manual/reference/operator/update/pop/#up._S_pop> Removes 
the first or last item of an array.
$pullAll 
<https://docs.mongodb.org/manual/reference/operator/update/pullAll/#up._S_pullAll> Removes 
all matching values from an array.
$pull 
<https://docs.mongodb.org/manual/reference/operator/update/pull/#up._S_pull> Removes 
all array elements that match a specified query.
$pushAll 
<https://docs.mongodb.org/manual/reference/operator/update/pushAll/#up._S_pushAll
*Deprecated.* Adds several items to an array.
$push 
<https://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push> Adds 
an item to an array.
Modifiers 
<https://docs.mongodb.org/manual/reference/operator/update/#modifiers>
NameDescription
$each 
<https://docs.mongodb.org/manual/reference/operator/update/each/#up._S_each> Modifies 
the $push 
<https://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push>
 and $addToSet 
<https://docs.mongodb.org/manual/reference/operator/update/addToSet/#up._S_addToSet> operators 
to append multiple items for array updates.
$slice 
<https://docs.mongodb.org/manual/reference/operator/update/slice/#up._S_slice> Modifies 
the $push 
<https://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push> operator 
to limit the size of updated arrays.
$sort 
<https://docs.mongodb.org/manual/reference/operator/update/sort/#up._S_sort> Modifies 
the $push 
<https://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push> operator 
to reorder documents stored in an array.
$position 
<https://docs.mongodb.org/manual/reference/operator/update/position/#up._S_position> Modifies 
the $push 
<https://docs.mongodb.org/manual/reference/operator/update/push/#up._S_push> operator 
to specify the position in the array to add elements.

On Tuesday, April 12, 2016 at 7:05:20 AM UTC-4, John Menke wrote:

We have a requirement for versioning that expects prior versions of a 
document to be stored in a version array within the document.  Is it 
possible to both update fields in a document and save a copy of the 
document itself in a single operation? 

All I want to do is append to the version array i don't want to have to 
copy down to client and update.

-- 
You received this message because you are subscribed to the Google Groups "mongodb-user"
group.

For other MongoDB technical support options, see: https://docs.mongodb.org/manual/support/
--- 
You received this message because you are subscribed to the Google Groups "mongodb-user" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mongodb-user+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to mongodb-user@xxxxxxxxxxxxxxxx.
Visit this group at https://groups.google.com/group/mongodb-user.
To view this discussion on the web visit https://groups.google.com/d/msgid/mongodb-user/a22d4dfd-db08-4329-bcc1-2ee3b1d161a9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Why ads?