我正在将我的python脚本从使用pymongo切换到使用mongoengine。以前,我有这个电话:
client_count = db.command("serverStatus")["connections"]['current'] - 1
但我希望使用mongoengine的包装来获取当前连接的数量。我查看了server-status和mongoengine docs,但无法找到提取服务器变量的等效调用。
我想交换到mongoengine,因为我们正在使用其ODM功能,我们希望减少冗余。
对此有何指示?什么是正确的语法,如果有的话?感谢。
与此同时,我们只是使用pymongo来获取正确的数据,而将mongoengine用于其他所有数据。
答案 0 :(得分:1)
警告:我不太了解这两种API。
但是,如果你看一下mongoengine的依赖关系,你会看到它依赖于pymongo,因为它实际上是用pymongo来实现的。
现在看看mongoengines实现其连接逻辑:https://github.com/MongoEngine/mongoengine/blob/master/mongoengine/connection.py#L113:它返回的连接对象实际上是pymongo连接。因此,原则上,您应该能够在返回的连接上进行pymongo调用。所以你实际上可以继续使用上面的调用。当然,此时你违反了mongoengine的封装,因为mongoengine可以改变其连接的内部实现类型。
但是,查看他们的文档,我没有看到任何其他方法来访问数据库的这个方面,所以这可能是最简单的方法。