在Python中执行MongoDb语句

发布于 2024-10-23 23:22:52 字数 306 浏览 3 评论 0原文

我有一个用 Python 运行的网络服务器。他正在从一些应用程序获取一些数据,并需要将这些数据存储在 MongoDB 中。我的 MongoDB 是分片的。 现在我希望我的网络服务器知道 MongoDB 有多少分片。目前他从 cfg 文件中读取了此内容。 MongoDb 中有一个名为 printshardingstatus 的语句,您可以在其中查看所有分片。所以我尝试从我的 Python 服务器调用这个语句。但似乎不可能。我在Pymongo API中没有找到这样的功能。

所以我的问题是,是否有机会在Python中运行MongoDB语句,以便它直接在MongoDB中传递和执行?

I have a Webserver running in Python. He is getting some Data from some Apps and need to store these in MongoDB. My MongoDB is sharded.
Now i want that my Webserver know how much Shards MongoDB has. At the moment he reads this from a cfg file. There is an Statement in MongoDb named printshardingstatus where u can see all shards. So i tried to call this statement from my Pythonserver. But it seems that it is not possible.I dont find such a function in the Pymongo API.

So my question is, is there an chance to run an MongoDB Statement in Python, so that it is directly passed and executed in MongoDB ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

帅气称霸 2024-10-30 23:22:52

printShardingStatus 没有服务器命令——它只是一个 mongo (javascript) shell 辅助函数。助手是针对一些查询
配置数据库,然后进行一些分组和格式化以使事情看起来更好。

如果您想了解 javascript shell 中的工作原理,您可以
可以从函数中删除括号(“()”),它会打印
JavaScript 代码。

这是来自 javascript shell 的代码。

> printShardingStatus
function (configDB, verbose) {
   if (configDB === undefined) {
       configDB = db.getSisterDB("config");
   }
   var version = configDB.getCollection("version").findOne();
   if (version == null) {
       print("not a shard db!");
       return;
   }
   var raw = "";
   var output = function (s) {raw += s + "\n";};
   output("--- Sharding Status --- ");
   output("  sharding version: " +
   ...

There is no server command for printShardingStatus -- it is just a mongo (javascript) shell helper function. The helper is a few queries against
the config database and then some grouping and formatting to make things look nicer.

If you ever want to see how things work in the javascript shell you
can just remove the parens ("()") from the function and it will print the
javascript code.

Here is the code from the javascript shell.

> printShardingStatus
function (configDB, verbose) {
   if (configDB === undefined) {
       configDB = db.getSisterDB("config");
   }
   var version = configDB.getCollection("version").findOne();
   if (version == null) {
       print("not a shard db!");
       return;
   }
   var raw = "";
   var output = function (s) {raw += s + "\n";};
   output("--- Sharding Status --- ");
   output("  sharding version: " +
   ...
缘字诀 2024-10-30 23:22:52

您是否尝试过 pymongomongoengine?然后也许给作者发消息......

Have you tried pymongo or mongoengine? Then perhaps send a message to the authors...

强辩 2024-10-30 23:22:52

您可以简单地获取配置数据库并
对分片集合执行 find()
就像正常收集一样。

You can simply get config databasr and
execute find() on shards collection
just like normal collection.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文