pymongo是Python對MongoDB的操作庫。但是由於python沒有IOSDate類型,所以對Mongo的時間類型是個很麻煩的操作。整理一個把python能識別的date類型轉化為IOSDate類型
腳本如下: #!/usr/bin/python import pymongo from dateutil import parser dateStr = '2018-06-12T00:00:00.000Z' myDatetime = parser.parse(dateStr) client = pymongo.MongoClient(host="192.168.2.14",port=29019) db = client.dbs db.authenticate() db.ceshi.insert({'date': myDatetime})
到MongoDB里查看數據:
testin.dbs>db.ceshi.find()
{ "_id" : ObjectId("5b3054fa29e93634dcc21645"), "date" : ISODate("2018-06-12T00:00:00Z") }
已經插入ISODate格式時間。
pymongo查詢數據實操:
import pymongo,datetime from dateutil import parser def findmongo(): time1 = datetime.datetime.now() dateStr1 = '2019-01-21T00:00:00Z' dateStr2 = '2019-01-23T00:00:00Z' myDatetime1 = parser.parse(dateStr1) myDatetime2 = parser.parse(dateStr2) client = pymongo.MongoClient(host="0.0.0.0", port=3717) db = client.mongolilly db.authenticate("root","admin") a = db.current_temp.find({"order_id":"465","scan_time":{ "$gte": myDatetime1, "$lte":myDatetime2}}) time2 = datetime.datetime.now() time3 = time2 - time1 print "time3------->select_time :%s" % time3 list = [] for i in a : data = { "number": i["number"], "temperature": i["temperature"], "scan_time": i["scan_time"], "scan_location": i["scan_location"], "battery": i["battery"], "rssi": i["rssi"], "mac": i["mac"], "order_id": i["order_id"] # "id": str(one_info.id) } list.append(data) time4 = datetime.datetime.now() time5 = time4-time1 print "time5------>all_time:",time5