如何使用Motor运行db.fsyncLock()

时间:2017-03-07 09:17:01

标签: tornado-motor

是否可以通过Motor运行db.fsyncLock()命令?我希望我的应用程序备份数据库,并且需要在复制之前刷新和锁定文件。

1 个答案:

答案 0 :(得分:1)

mongo shell通过调用MongoDB命令执行fsyncLock:

https://docs.mongodb.com/manual/reference/method/db.fsyncLock/

如该页面所示,shell使用以下语法为fsync数据库命令提供了一个简单的包装器:

{ fsync: 1, lock: true }

因此,您可以使用Motor作为任何MongoDB命令运行它:

await client.admin.command(SON([('fsync', 1), ('lock', true)]))

这里,“客户”是一个MotorClient。如果你在使用“async def”定义的本地协程中,请使用“await”,如果你在使用“@ gen.coroutine”装饰的基于生成器的协程中,则使用“yield”。