发布于 2015-09-14 14:42:59 | 146 次阅读 | 评论: 0 | 来源: 网络整理
MongoDB BSON provide support for additional data types than JSON. Drivers provide native support for these data types in host languages and the mongo shell also provides several helper classes to support the use of these data types in the mongo JavaScript shell. See MongoDB 扩展 JSON for additional information.
The mongo shell provides various options to return the date, either as a string or as an object:
Consider the following examples:
To return the date as a string, use the Date() method, as in the following example:
var myDateString = Date();
To print the value of the variable, type the variable name in the shell, as in the following:
myDateString
The result is the value of myDateString:
Wed Dec 19 2012 01:03:25 GMT-0500 (EST)
To verify the type, use the typeof operator, as in the following:
typeof myDateString
The operation returns string.
To get the date as an ISODate object, instantiate a new instance using the Date() constructor with the new operator, as in the following example:
var myDateObject = new Date();
To print the value of the variable, type the variable name in the shell, as in the following:
myDateObject
The result is the value of myDateObject:
ISODate("2012-12-19T06:01:17.171Z")
To verify the type, use the typeof operator, as in the following:
typeof myDateObject
The operation returns object.
To get the date as an ISODate object, instantiate a new instance using the ISODate() constructor without the new operator, as in the following example:
var myDateObject2 = ISODate();
You can use the new operator with the ISODate() constructor as well.
To print the value of the variable, type the variable name in the shell, as in the following:
myDateObject2
The result is the value of myDateObject2:
ISODate("2012-12-19T06:15:33.035Z")
To verify the type, use the typeof operator, as in the following:
typeof myDateObject2
The operation returns object.
The mongo shell provides the ObjectId() wrapper class around ObjectId data types. To generate a new ObjectId, use the following operation in the mongo shell:
new ObjectId
See
ObjectId for full documentation of ObjectIds in MongoDB.
By default, the mongo shell treats all numbers as floating-point values. The mongo shell provides the NumberLong() class to handle 64-bit integers.
The NumberLong() constructor accepts the long as a string:
NumberLong("2090845886852")
The following examples use the NumberLong() class to write to the collection:
db.collection.insert( { _id: 10, calc: NumberLong("2090845886852") } )
db.collection.update( { _id: 10 },
{ $set: { calc: NumberLong("2555555000000") } } )
db.collection.update( { _id: 10 },
{ $inc: { calc: NumberLong(5) } } )
Retrieve the document to verify:
db.collection.findOne( { _id: 10 } )
In the returned document, the calc field contains a NumberLong object:
{ "_id" : 10, "calc" : NumberLong("2555555000005") }
If you increment the field that contains a NumberLong object by a float, the data type changes to a floating point value, as in the following example:
Use $inc to increment the calc field by 5, which the mongo shell treats as a float:
db.collection.update( { _id: 10 },
{ $inc: { calc: 5 } } )
Retrieve the updated document:
db.collection.findOne( { _id: 10 } )
In the updated document, the calc field contains a floating point value:
{ "_id" : 10, "calc" : 2555555000010 }