我現在使用java方法com.mongodb.util.JSON.parse(param)將我的json字符串轉換爲DBObject.I發現,在大多數情況下,例如,當json字符串中的鍵是簡單類型如string或int時,JSON.parse()方法和終端都可以使用它。 例如:Mongodb- java函數com.mongodb.util.JSON.parse()
json string:{'times':8}
兩個JSON.parse({ '倍':8})和db.collection.find({ '倍':8})的終端能夠正常工作。
但是,當我做ISODate或_id查詢時,事情就變得不同:
json string 1 :{'createDate':ISODate('2013-10-21T06:39:16.692Z')}
json strign 2: {'createDate':{'$date':'2013-10-21T06:39:16.692Z'}}
JSON字符串1可以在終端正常工作,但不能被JSON.parse()來的方法進行解析。 相反,json字符串2可以通過JSON.parse()方法解析,但不能在終端中使用。
同樣的事情發生在_id。
json string 3:{'_id':ObjectId('1231daf213432414321431')}
json string 4:{'_id':{'$oid':'fadf234234sdfadfasdfa12'}}
json字符串3可以在終端正常工作,但無法通過JSON.parse()方法解析。 相反,json字符串4可以通過JSON.parse()方法解析,但不能在終端中使用。 我不知道這些差異的原因。