For example I want to update all records to '2012-01-01' ( "time" : ISODate("2011-12-31T13:52:40Z") ).
db.test.update( { time : '2012-01-01' }, false, true )
return error:
Assert failed : need an object Error("Printing Stack Trace")@:0 ()@shell/utils.js:35 ("assert failed : need an object")@shell/utils.js:46 (false,"need an object")@shell/utils.js:54 ([object Object],false,true)@shell/collection.js:189 @(shell):1 Wed Jan 11 17:52:35 uncaught exception: assert failed : need an object
You can specify a particular date by passing an ISO-8601 date string with a year within the inclusive range 0 through 9999 to the new Date() constructor or the ISODate() function. These functions accept the following formats: new Date("<YYYY-mm-dd>") returns the ISODate with the specified date.
To update a single field or specific fields just use the $set operator. This will update a specific field of "citiName" by value "Jakarta Pusat" that defined by $set operator.
MongoDB's update() and save() methods are used to update document into a collection. The update() method updates the values in the existing document while the save() method replaces the existing document with the document passed in save() method.
The current date in the MongoDB queryThe Date() will return the current date as a string. The new Date() will return the current date a date object and MongoDB cover the Date object with the ISODate.
You need to create a new ISODate
object like this:
db.test.insert({"Time" : new ISODate("2012-01-10") });
This is true both for updates and for queries. Note that your query syntax is incorrect, it should be
db.test.update({ criteria }, { newObj }, upsert, multi);
For example, to update all objects, consider
db.test.update( {}, { $set : { "time" : new ISODate("2012-01-11T03:34:54Z") } }, true, true);
Also note that this is very different from
db.test.update( {}, { "time" : new ISODate("2012-01-11T03:34:54Z") }, true, false);
because the latter will replace the object, rather than add a new field to the existing document or updating the existing field. In this example, I changed the last parameter to false
, because multi updates only work with $
operators.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With