可以使用MySQL的JSON_CONTAINS函数来实现查询JSON字段中是否包含某个特定字段,例如:
from peewee import *
import json
db = MySQLDatabase('my_database', user='my_username', password='my_password',
host='127.0.0.1', port=3306)
class MyModel(Model):
data = JSONField()
class Meta:
database = db
table_name = 'my_table'
search_term = 'download'
query = MyModel.select().where(fn.json_contains(MyModel.data, json.dumps({"$exists": True, "$contains": search_term})))
在这个示例中,我们使用了peewee的fn.json_contains函数来查询包含”name”字段的JSON对象。我们将包含关键字的查询字符串转换为JSON格式,并将其传递给查询函数。
请注意,在这个例子中,我们使用了MySQL的JSON_CONTAINS函数来实现查询,因此只有MySQL版本5.7或更高版本才支持这个函数。