首页 > 解决方案 > TinyDB 删除 WHERE 多个值为真

问题描述

在 Python 中,我试图从 TinyDB 中删除 2 个值匹配的条目。

示例数据库:

{
    "_default": {
        "1": {
            "GuildID": 123,
            "RoleName": "role"
        },
        "2": {
            "GuildID": 321,
            "RoleName": "role"
        }
     }

如果我做

db.remove(where('RoleName' == role))

它将删除这两个条目,但我不希望这样。我想GuildID匹配RoleName

我认为这会起作用,但显然不是

db.remove(where('RoleName' == role) & ('GuildID' == 321))

上面的查询在数据库中根本找不到任何值,但我希望它删除条目2

标签: pythonpython-3.xtinydb

解决方案


已修复,我使用了 TinyDB 的Query函数

from tinydb import Query
QueryBuilder = Query()
db.remove((QueryBuilder.RoleName == role) & (QueryBuilder.GuildID == 321))


推荐阅读