gpt4 book ai didi

python - 使用 pymongo 在 mongodb 上插入 $currentDate

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:35 28 4
gpt4 key购买 nike

我需要测试服务器 mongodb 的准确性。我正在尝试插入一系列数据,花点时间将其发送到数据库以了解何时插入。我正在尝试这个:

#!/usr/bin/python
from pymongo import Connection
from datetime import date, timedelta, datetime

class FilterData:

@classmethod
def setData(self, serialData):
try:
con = Connection('IP_REMOTE', 27017, safe=True)
db = con['resposta']
inoshare = db.resposta
inoshare.insert(serialData)
con.close()

except Exception as e:
print "Erro no filter data: ", e.message, e.args

obj = FilterData()
inicio = datetime.now()
termino = inicio + timedelta(seconds=10)
contador = 1

while inicio <= termino:
print contador, inicio.strftime('%d-%m-%Y %H:%M:%S')
pacote = {'contador':contador, 'datahora':$currentDate()}
obj.setData(pacote)
contador += 1

但是mongodb的变量(使用$)在python中是无法识别的。如何着手完成这种整合?

观察:IP_REMOTE = 我在远程服务器上的有效 IP

然后尝试了以下,但只插入了一条记录。

#!/usr/bin/python
from pymongo import Connection
from datetime import date, timedelta, datetime
import time

class FilterData:

def __init__(self):
self.con = Connection('54.68.148.224', 27017, safe=True)
self.db = self.con['resposta']
self.inoshare = self.db.resposta

def setData(self, serialData):
try:

self.inoshare.update({}, serialData, upsert=True)

except Exception as e:
print "Erro no filter data: ", e.message, e.args

def desconect(self):
self.con.close()

obj = FilterData()
inicio = datetime.now()
termino = inicio + timedelta(seconds=30)

while inicio <= termino:
print inicio.strftime('%d-%m-%Y %H:%M:%S')
pacote = {'$currentDate': {'datahora': { '$type': 'date' }}}
obj.setData(pacote)
inicio = datetime.now()
time.sleep(1)

obj.desconect()

最佳答案

MongoDB 中的运算符表达式在数据结构中表示为字符串。这些也是“更新操作符”,所以 $currentDate用于 .update() 的“更新对象”部分方法。

所以像这样从服务器插入一个带有“$currentDate”的新记录:

db = con['resposta']            
inoshare = db.resposta
inoshare.update({}, {
'$currentDate': {
'datahora': { '$type': 'date' }
}
},upsert=True)

当然假设您的收藏中没有任何东西。否则,当您想要按原样“插入”/“更新插入”时,请确保 .update() 语句的“查询”部分与文档不匹配。

MongoDB 手册页中的所有文档选项都是与 MongoDB shell 相关的 JSON 表示法,但这与许多动态类型语言(如 python、ruby 和 Perl)的表示法并没有太大区别。

顺便说一句。除非您真的在不同的脚本中进行测试,否则不要在每次操作前后建立连接和断开连接。数据库集合应在应用程序的生命周期内保持开放。

关于python - 使用 pymongo 在 mongodb 上插入 $currentDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26814040/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com