草庐IT

Flask-PyMongo

全部标签

python - 在 flask 中显示来自 base64 编码的 MongoDB 字段的图像

我正在以下列方式将图像存储在MongoDB中并尝试显示该图像,但是我在执行此操作时遇到了问题。我确定这取决于编码。我在页面上的展示使用jinja2b64d是一个用于解码字符串字段的自定义过滤器。frombase64importb64decodeasb64decodeapp.jinja_env.filters['b64d']=lambdau:b64decode(u)Mongo中的字段如下所示:"my_image":"/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhs

python - Flask-PyMongo 和 init_app()

我正在清理我的开发环境。我的代码运行良好,但我想消除各种mongo驱动程序之间的任何冲突。但是现在我对以下设置产生的错误感到困惑fromdatabaseimportmongoapp=Flask(__name__)app.config.from_object('config')mongo.init_app(app)和fromflask.ext.pymongoimportPyMongomongo=PyMongo()出现以下错误:mongo.init_app(app)File"/home/x/venv/local/lib/python2.7/site-packages/flask_pymon

python - 应用 $geoNear 在 pymongo 中使用聚合找到最近的 latlong?

我在集合中的文档看起来像这样-{'_id':'Delhi1','loc':[28.34242,77.656565]}{'_id':'Delhi2','loc':[27.34242,78.626523]}{'_id':'Delhi3','loc':[25.34242,77.612345]}{'_id':'Delhi4','loc':[28.34242,77.676565]}我想使用pymongo应用聚合,以根据输入的latlong找出相关文档。我已经在“loc”上创建了索引。这是我到目前为止所做的-pipeline=[{'$geoNear':{'near':[27.8787,78.234

python - pymongo $set 子文档数组

我有一个pymongo集合,形式如下:{"_id":"R_123456789","supplier_ids":[{"id":"S_987654321","file_version":ISODate("2016-03-15T00:00:00Z"),"latest":false},{"id":"S_101010101","file_version":ISODate("2016-03-29T00:00:00Z"),"latest":true}]}当我获得新的供应商数据时,如果供应商ID已更改,我想通过将之前“最新”的最新设置为False并$push新记录来捕获该数据。$set不工作,因为我正

python - 如何使用pymongo过滤mongo集合中的数据

我正在使用pymongo查询MongoDB并检查特定集合中的重复项。我已经确定了重复项,但我想在脚本中再添加一个过滤器。请在下面找到我的脚本frompymongoimportMongoClientclient=MongoClient('localhost')db=client.testdata=db.devices.aggregate([{'$group':{'_id':{'UserId':"$userId",'DeviceType':"$deviceType"},'count':{"$sum":1}}},{'$match':{'count':{"$gt":1}}}])for_idin

mongodb - pymongo 无法连接到主节点

我正在尝试通过连接到我的副本集的主节点来find_one。MongoClient(hostname,replicaSet="rs0",read_preference=ReadPreference.PRIMARY)但它会导致错误:ServerSelectionTimeoutError:Noreplicasetmembersmatchselector"Primary()"我能够使用SECONDARY_PREFERRED成功阅读。我还尝试使用MongoReplicaSetClient进行连接,但没有成功。我猜这是由于配置不当造成的,但我应该寻找什么?rs.状态:rs0:PRIMARY>rs.

python - 在 Pymongo 查询路径中使用日期时间的最佳实践?

如果我需要一些复杂的路径,我该如何使用datetime对象?例如,我想增加位于jumps/datetime.date()/countrycode中的计数器:database['data'].update_one({'some_data':'asdasd'},{'$inc':{'jumps.{}.{}'.format(datetime.now().date(),"US"):1}},)这段代码可以工作,但是(如预期的那样)有一个字符串而不是datetime对象:"jumps":{"2017-04-14":{"US":4}} 最佳答案 不

mongodb - pymongo db 已经存在,不同的情况已经有了

这是我的代码:frompymongoimportMongoClientfrompprintimportpprintfromcollectionsimportOrderedDictimportoperatorclient=MongoClient()client=MongoClient('localhost',27017)db=client['searchPo']db.video.create_index([("'video_id",1),("unique",1),("dropDups",1)])我得到这个错误:dbalreadyexistswithdifferentcasealready

mongodb - 客户端退出后 Pymongo 放弃 "pymongo_kill_cursors_thread"

我有一个Python应用程序,它在单独的线程中运行作业。一些workerjobs为数据库连接实现pymongo。classJob(Thread):...self.client=MongoClient()每个作业都有一个完成方法,其中self.client.close()在作业将要终止时被调用。据推测,这应该会结束所有关联的线程,但每个作业的一个线程仍然存在:pymongo_kill_cursors_thread当我启动多个作业并完成它们时,这些pymongo_kill_cursors_threads永远不会死,我在短时间内得到了数百个,这是一个示例,在测试作业完成后:Resultoft

python - 无法使用pymongo客户端将MongoDB与Docker中的Flask连接

我正在尝试将mongodb与我在docker中的flask应用程序连接起来。它不工作。我试过thislink,它适用于Mac,但我使用的是Windows。这是我的dockercompose文件version:'3.4'services:docker_flask_mongo:build:.ports:-'5000:5000'mongodb:image:mongo:3.4ports:-'27017:27017'在pythonflask应用程序中我已经尝试过了client=MongoClient(os.environ['DB_PORT_27017_TCP_ADDR'],27017)不起作用。