本文将介绍如何使用pymongo在mongodb中查询日期?的详细情况,特别是关于mongodb查询时间的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些
本文将介绍如何使用pymongo在mongodb中查询日期?的详细情况,特别是关于mongodb 查询时间的相关信息。我们将通过案例分析、数据研究等多种方式,帮助您更全面地了解这个主题,同时也将涉及一些关于c# – 在MongoDb中查询超时、Mongodb-- python中使用pymongo连接mongodb数据库、Python - MongoDB - MongoDB(pymongo)的简单使用、python下使用pymongo操作mongodb的知识。
本文目录一览:- 如何使用pymongo在mongodb中查询日期?(mongodb 查询时间)
- c# – 在MongoDb中查询超时
- Mongodb-- python中使用pymongo连接mongodb数据库
- Python - MongoDB - MongoDB(pymongo)的简单使用
- python下使用pymongo操作mongodb
如何使用pymongo在mongodb中查询日期?(mongodb 查询时间)
我正在尝试在mongodb中执行查询日期,但结果始终为空。我的查询如下:
//in the begin codedef __init__(self): self.now = datetime.now() self.db = conexaoMongo() self.horaInicio = self.now - timedelta(minutes=1)def resultadoConsulta(self, modo, porta, id_node): #print "Porta e No ", porta, id_node resultadoMongo = [] mediaFinal = False try: json = {''id_no'': int(id_node), ''datahora'': {''$gte'': self.horaInicio, ''$lt'': self.now}, ''porta'': porta} print "COnsulta a ser realizada: ", json resultadoMongo = self.db.queryMongoOne(json)
//变量resultaMongo返回空。
Obs:我也尝试不使用.isoformat(),当我直接放入mongodb时,只有添加ISODate才返回结果。因此不会返回结果:
db.inoshare.find( {''id_no'': 1, ''datahora'': {''$lte'': ''2014-09-24T07:52:04.945306'', ''$gte'': ''2014-09-24T07:51:04.958496''}, ''porta'': ''A0''})
更重要的是,如果您编辑返回:
db.inoshare.find( {''id_no'': 1, ''datahora'': {''$lte'': ISODate(''2014-09-24T07:52:04.945306''), ''$gte'': ISODate(''2014-09-24T07:51:04.958496'')}, ''porta'': ''A0''})
这是数据库中的记录序列:
{ "_id" : ObjectId("5435be9ce7b9916e02ed2cb5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:05Z"), "valor" : "917", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cb9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:07Z"), "valor" : "932", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cbd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:09Z"), "valor" : "189", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cc1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:11Z"), "valor" : "853", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cc5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:13Z"), "valor" : "202", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cc9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:15Z"), "valor" : "398", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2ccd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:17Z"), "valor" : "947", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cd1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:19Z"), "valor" : "57", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cd5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:21Z"), "valor" : "395", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cd9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:23Z"), "valor" : "941", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2cdd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:25Z"), "valor" : "208", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2ce1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:27Z"), "valor" : "186", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2ce5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:29Z"), "valor" : "848", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2ce9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:31Z"), "valor" : "571", "sensor" : "1" } { "_id" : ObjectId("5435be9ce7b9916e02ed2ced"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:33Z"), "valor" : "351", "sensor" : "1" } { "_id" : ObjectId("5435be9de7b9916e02ed2cf1"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:35Z"), "valor" : "558", "sensor" : "1" } { "_id" : ObjectId("5435be9de7b9916e02ed2cf5"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:37Z"), "valor" : "449", "sensor" : "1" } { "_id" : ObjectId("5435be9de7b9916e02ed2cf9"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:39Z"), "valor" : "768", "sensor" : "1" } { "_id" : ObjectId("5435be9de7b9916e02ed2cfd"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:41Z"), "valor" : "542", "sensor" : "1" } { "_id" : ObjectId("5435be9de7b9916e02ed2d01"), "lab" : "2", "porta" : "A0", "id_no" : 1, "datahora" : ISODate("2014-09-24T07:51:43Z"), "valor" : "763", "sensor" : "1" }
如果我打印python的json变量,则会看到类似以下内容的内容:
{''id_no'': 1, ''datahora'': {''$gte'': datetime.datetime(2014, 9, 24, 8, 21, 38, 527653), ''$lt'': datetime.datetime(2014, 9, 24, 8, 22, 36, 677022)}, ''porta'': ''A1''}
我的Mongndb Class连接是:
#!/usr/bin/pythonfrom pymongo import MongoClientclass conexaoMongo: def __init__(self): self.conditions = [] self.client = MongoClient("127.0.0.1", 27017, safe=True) self.db = self.client[''inoshare''] self.ino = self.db.inoshare def queryMongo(self, param1, param2=None, param3=None): try: if param2 != None: results = self.ino.find(param1, param2) elif param3 != None: results = self.ino.find(param1, param2, param3) else: results = self.ino.find(param1) #print "Total de registros ", results.count() for post in results: #print post self.conditions.append(post) return self.conditions except: print "Erro ao executar a query"
答案1
小编典典@Joni是正确的,您需要使用datetime
。
from datetime import datetimefrom pymongo import Connection# i have updated and included the complete code client = Connection(''localhost'', 27017)db = client[''database''] # your database nameinoshare = db[''inoshare'']# convert your date string to datetime objectstart = datetime(2014, 9, 24, 7, 51, 04)end = datetime(2014, 9, 24, 7, 52, 04)inoshare.find( {''id_no'': 1, ''datahora'': {''$lt'': end, ''$gte'': start}, ''porta'': ''A0''})<pymongo.cursor.Cursor at 0x7f9aafd64a90>inoshare.find_one( {''id_no'': 1, ''datahora'': {''$lt'': end, ''$gte'': start}, ''porta'': ''A0''}){u''_id'': ObjectId(''5435be9ce7b9916e02ed2cb5''), u''datahora'': datetime.datetime(2014, 9, 24, 7, 51, 5), u''id_no'': 1.0, u''lab'': u''2'', u''porta'': u''A0'', u''sensor'': u''1'', u''valor'': u''917''}
显然我可以成功返回结果。也许您的数据已损坏,或者您应该发布所有代码供我们审核
c# – 在MongoDb中查询超时
解决方法
http://www.mongodb.org/display/DOCS/Viewing+and+Terminating+Current+Operation
或者,在新客户端启动时,您可以执行更具编程性的操作(从日志中获取最后运行的查询,因为它们来自以前的客户端而终止它们).您是否可以通过编程方式识别要杀死的操作并避免杀死其他操作是关键 – 可能需要您在应用中添加一些日志记录以跟踪正在进行的操作.
Mongodb-- python中使用pymongo连接mongodb数据库
一.使用
通过pip或者pychrm下载pymongo模块
import json
from pymongo import MongoClient
from bson import ObjectId
mc = MongoClient("127.0.0.1",27017)
MONGODB = mc["数据库名"]
MONGODB.users.find({}) # 可以操作了
上面的文件一般单独写一个settings.py,在用到的时候,通过引入MONGO来操作
关于bson:
mongo中取出的数据有一个''_id''字段相当于mysql中的id, 这个字段的类型是Objectid,所以查询的结果不能直接json序列化,需要将这个''_id''转化为str类型后才能json序列化,相应的,从前端传过来的''_id''也要通过bson转化为ObjectId才能查到Mongodb中的数据
@au.route(''/auto_login'',methods=[''POST''])
def auto_login():
user_info = request.form.to_dict()
print(user_info)
try:
user_id = user_info.get(''user_id'')
user = MONGODB.users.find_one({''_id'': ObjectId(user_id)})
user[''_id''] = str(user[''_id''])
RET = {
''code'': 1,
''msg'': ''自动登陆成功'',
''data'': user
}
except:
RET = {
''code'': 0,
''msg'': ''自动登陆失败'',
''data'': {}
}
return jsonify(RET)
操作示例
# MONGODB = mc["admin"]
# res = MONGODB.users.find_one({"name":"Tom"})
# res["cours"].append({"name":"Tom","money":"100"})
# for index,cours in enumerate(res["cours"]):
# if cours.get("name") == "Tom":
# res["cours"][index]["score"] = 99
# MONGODB.users.delete_one({"age":84})
# MONGODB.users.delete_many({"age":84})
# user = MONGODB.users.find_one({"_id":ObjectId("5cb6eb7322b9441020186701")})
# print(user.get("_id"),type(user.get("_id")))
#
# user["_id"] = str(user["_id"])
# jsonstr = json.dumps(user)
# print(jsonstr , type(jsonstr))
Python - MongoDB - MongoDB(pymongo)的简单使用
Python - MongoDB - MongoDB(pymongo)的简单使用
首先要安装pymongo
pip install pymongo
导入pymongo
import pymongo
基本操作
连接MongoDB数据库
client = pymongo.MongoClient('localhost', 27017) # 连接数据库
新建数据库
mydb = client['mydb'] # 新建mydb数据库
新建数据集合
test = mydb['test'] # 新建test数据集合
插入一条数据
"""
插入数据
键值对表示,键即列名
"""
test.insert_one({'name': 'Jon', 'sex': 'male', 'grade': 9}) # 插入数据
运行代码后,成功创建了mydb数据库和test数据集合并插入数据,自动生成了_id
列作为主键
并随机生成了id值
注
python下使用pymongo操作mongodb
Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。
Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。
Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。
# coding: utf-8 import pymongo if __name__ == ''__main__'': conn = pymongo.MongoClient("192.168.6.6", 27017) db = conn.local data = db.test.find({''T1'':''DDDD''}) for x in data.limit(100): print x db.test.insert({''T1'':''1234'', ''T2'':''AAAA'', ''lo'':{ ''lat'':''0.000000'', ''lon'':''0.000000'' }}) db.test.find() db.test.update(''$set'', { ''_id'':''55b1d0d6b12e3f38d86a1c11'' }, { ''T1'':''hello'' }) db.test.find() db.test.remove({ ''_id'': ''55b1d0d6b12e3f38d86a1c11'' }) db.test.find()
关于如何使用pymongo在mongodb中查询日期?和mongodb 查询时间的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于c# – 在MongoDb中查询超时、Mongodb-- python中使用pymongo连接mongodb数据库、Python - MongoDB - MongoDB(pymongo)的简单使用、python下使用pymongo操作mongodb等相关内容,可以在本站寻找。
本文标签: