标签: pymongo

设置远程 MongoDB 连接

我刚刚找到了一个可以通过 SSH 连接的开发盒,然后我将 MongoDB 安装到它上面并与 pymongo 连接。但是,当我尝试连接时,出现超时问题。我的问题是如何在通过字符串连接时设置凭据:

client = MongoClient("mongodb://99.99.99.99/db_name")
Run Code Online (Sandbox Code Playgroud)

我在哪里可以设置 SSH 凭据,或者根本不可能以这种方式使用 mongo 服务器?我希望能够进入username:password,我在这里看到了一些关于 ssh 隧道的内容:

https://www.digitalocean.com/community/tutorials/how-to-securely-configure-a-production-mongodb-server
Run Code Online (Sandbox Code Playgroud)

ssh mongodb pymongo

0
推荐指数
1
解决办法
1万
查看次数

在mongodb pymongo中按日期排序

我有像下面这样的数据库条目,我想按 added_on 排序,但它给出了错误。我们是否有某种方法以这种格式对日期进行排序,或者建议使用某种其他格式的存储日期

{
    "_id" : ObjectId("57d1a9dc1170b35414a180d7"),
    "c" : "TPCG",
    "modified_on" : ISODate("2016-09-08T18:11:40.150Z"),
    "euuu" : "5",
    "owner" : null,
    "added_on" : ISODate("2016-09-08T18:11:40.150Z")
}
Run Code Online (Sandbox Code Playgroud)

错误

> db.testjobs.find({'add_on':{$lte: ISODate("2016-09-08T18:11:40.150Z")}}).sort('added_on',-1).limit(3)
Error: error: {
    "$err" : "Can't canonicalize query: BadValue sort must be object or array",
    "code" : 17287
}

>db.testjobs.find().sort('added_on',-1)
Error: error: {
    "$err" : "Can't canonicalize query: BadValue sort must be object or array",
    "code" : 17287
Run Code Online (Sandbox Code Playgroud)

mongodb pymongo

0
推荐指数
1
解决办法
1678
查看次数

PyMongo:BSON 到 JSON dict 的转换(转储返回一个 JSON 字符串)

使用 pymongo 客户端从 MongoDB 获取记录的代码段

from bson.json_util import dumps

cursor = db.collections.find({"Test": "Sample"})

for msg in cursor:
    json_msg = dumps(msg)
Run Code Online (Sandbox Code Playgroud)

但是, json_msg 是字符串类型。有没有办法获得可以在 dict 之类的东西中遍历的 JSON 对象?我想在遍历它们时处理检索到的 JSON 对象。

我试过了json.loads(json_msg),但这又将 json_msg 转换回 BSON 格式。

编辑:我不只是想打印(这可以通过打印字符串来实现);但是,要迭代和处理 JSON 对象。

python json mongodb bson pymongo

0
推荐指数
1
解决办法
3899
查看次数

Mongo 错误:聚合的“未知顶级运算符:$completed_on”

我正在尝试使用 Mongo 执行聚合操作,如下所示:

db.inbound_documents.aggregate([{"$match": 
{"$completed_on": 
{"$gte":'2018-05-19 00:00:00',
"$lte":'2017-05-19 00:00:00'}}},
{"$group":
{"_id":"$completed_by","total":{"$sum":1}}}])
Run Code Online (Sandbox Code Playgroud)

Completed_on 在模式中可用,但我仍然不明白为什么它会导致该错误。

mongodb pymongo python-3.x

0
推荐指数
1
解决办法
5536
查看次数

pymongo.errors.ServerSelectionTimeoutError:db:27017:超时,超时:30秒,

我正在尝试运行 Flask 和 MongoDb 应用程序并收到以下错误。这是我可以使用获取的日志sudo docker logs <container-name>

    self._select_servers_loop(
  File "/usr/local/lib/python3.10/site-packages/pymongo/topology.py", line 227, in _select_servers_loop
    raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: db:27017: timed out, Timeout: 30s, Topology Description: <TopologyDescription id: 626fc61ba785d70a66a1ea12, topology_type: Unknown, servers: [<ServerDescription ('db', 27017) server_type: Unknown, rtt: None, error=NetworkTimeout('db:27017: timed out')>]>
Run Code Online (Sandbox Code Playgroud)

当我尝试访问本地主机时,我在日志中收到上述错误。当我尝试在浏览器中访问本地主机时,我看到connection was reset错误,然后我看到生成了上述日志。

这是我的 app.py 文件

from flask_restful import Api, Resource
import os
from pymongo import MongoClient

app = Flask(__name__)
api = Api(app)


client = MongoClient("mongodb://db:27017", port=27017, directConnection=True)
db = client.aNewDB
UserNum = db["UserNum"]

UserNum.insert_one({
    'num_of_users':0 …
Run Code Online (Sandbox Code Playgroud)

python pymongo docker dockerfile docker-compose

0
推荐指数
1
解决办法
8440
查看次数

-2
推荐指数
1
解决办法
113
查看次数

将列表保存到 PyMongo

从未使用过 PyMongo,所以我对这个东西很陌生。我希望能够将我的列表之一保存到 MongoDB。例如,我有一个imageIds = ["zw8SeIUW", "f28BYZ"]经常附加的列表。每次之后append,列表imageIds应保存到数据库中。

import pymongo
from pymongo import MongoClient

db = client.databaseForImages
Run Code Online (Sandbox Code Playgroud)

然后后来

imageIds.append(data)
db.databaseForImages.save(imageIds)
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?解决办法是什么?

python database save mongodb pymongo

-4
推荐指数
1
解决办法
5410
查看次数