如何使用电机 运行 db.fsyncLock()

how to run db.fsyncLock() with Motor

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

mongoshell通过调用MongoDB命令执行fsyncLock:

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

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

{ fsync: 1, lock: true }

因此您可以 运行 将其与电机一起使用,就像任何 MongoDB 命令一样:

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

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