【问题标题】:Execute MongoDb Statements in Python在 Python 中执行 MongoDb 语句
【发布时间】:2011-07-18 01:27:43
【问题描述】:

我有一个在 Python 中运行的 Web 服务器。他正在从一些应用程序中获取一些数据,并且需要将这些数据存储在 MongoDB 中。我的 MongoDB 已分片。 现在我想让我的网络服务器知道 MongoDB 有多少 Shards。目前,他从 cfg 文件中读取此信息。 MongoDb 中有一个名为 printshardingstatus 的语句,您可以在其中查看所有分片。所以我试图从我的 Pythonserver 调用这个语句。但是好像不行。我在Pymongo API中没有找到这样的功能。

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

【问题讨论】:

    标签: python mongodb pymongo


    【解决方案1】:

    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: " +
       ...
    

    【讨论】:

      【解决方案2】:

      您可以简单地获取配置数据库和 在分片集合上执行 find() 就像普通的收藏一样。

      【讨论】:

        【解决方案3】:

        你试过pymongomongoengine吗?然后也许向作者发送消息...

        【讨论】:

        • 找到了答案……有一个命令函数,你可以把语句放进去
        • 太棒了 - 对于以后阅读本文的其他人,请分享一个示例 :-)
        猜你喜欢
        • 2022-11-22
        • 1970-01-01
        • 1970-01-01
        • 2021-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-12-05
        • 1970-01-01
        相关资源
        最近更新 更多