【发布时间】:2018-07-21 05:39:10
【问题描述】:
我想做的是用 python 和 discord.py 更新一个 MongoDB 文档,但是我放的代码不起作用。
elif string2 == "add":
if string3 == "administrator":
cur = coll.find({"_id" : string1.id})
for doc in cur:
if doc["perm"] == "administrator":
await self.bot.say("Permission {} already found on db for user {}".format(string3, string1.name))
else:
db.users.update_one({"_id" : string1.id, "name" : string1.name, "perm" : "administrator"}, upsert=False)
await self.bot.say("Permissions updated on db for user {}".format(string1.name))
以下是错误。
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: update_one() missing 1 required positional argument: 'update'
来自用户集合的文档:
_id: "191598787410526208"
name: "Stevyb0t"
perm: "administrator"
【问题讨论】:
-
您需要将第二个参数传递给
update_one,以便更新文档并避免此类错误。它看起来像这样,db.users.update_one({}, {}, upsert=False) -
@NileshSingh ,它说“更新只适用于 $ 运营商”。
-
如果您可以使用edit 链接更新您的问题并向我们展示来自
users集合的示例文档,将会有很大帮助 -
@chridam ,完成。
-
就像@NileshSingh 所说的,试试
db.users.update_one({"_id" : string1.id}, {"$set": {"name" : string1.name, "perm" : "administrator"}}, upsert=False)
标签: python mongodb pymongo discord.py