相关疑难解决方法(0)

查找包含特定值的数组的文档

如果我有这个架构......

person = {
    name : String,
    favoriteFoods : Array
}
Run Code Online (Sandbox Code Playgroud)

... favoriteFoods数组中填充了字符串.我怎样才能找到所有使用猫鼬"寿司"作为他们最喜欢的食物的人?

我希望有类似的东西:

PersonModel.find({ favoriteFoods : { $contains : "sushi" }, function(...) {...});
Run Code Online (Sandbox Code Playgroud)

(我知道$contains在mongodb中没有,只是在了解解决方案之前解释我期望找到的内容)

mongoose mongodb

456
推荐指数
7
解决办法
43万
查看次数

SQLAlchemy JSON列-如何执行包含查询

我在mysql(5.7.12)中有下表:

class Story(db.Model):
    sections_ids = Column(JSON, nullable=False, default=[])
Run Code Online (Sandbox Code Playgroud)

sections_ids是basicly整数[1,2,...,N]的列表。我需要获取sections_ids包含X的所有行。我尝试了以下操作:

stories = session.query(Story).filter(
        X in Story.sections_ids
    ).all()
Run Code Online (Sandbox Code Playgroud)

但它抛出:

NotImplementedError: Operator 'contains' is not supported on this expression
Run Code Online (Sandbox Code Playgroud)

python mysql json sqlalchemy

6
推荐指数
2
解决办法
5079
查看次数

SQLAlchemy在PostgreSQL JSONB中过滤嵌套的JSON数据

我将嵌套JSON存储为jsonb,但我不知道如何选择具有不确定值的嵌套json.

例如:

{
    "facebook": {
        "openid": "123456789",
        "access_token": "6EFD26B0A868E3BB387E78851E42943F"
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道openid的值,但access_token是不确定的.

我尝试了以下但它引发了一个错误.

cls.query.filter(User.auth["facebook"]["openid"].astext == openid).first()
Run Code Online (Sandbox Code Playgroud)

python postgresql json sqlalchemy

5
推荐指数
1
解决办法
2517
查看次数

SQLAlchemy:过滤存储在 JSONB 字段的嵌套列表中的值

假设我有一个名为 的模型Item,其中包含一个 JSONB 字段data。其中一条记录存储了以下 JSON 对象:

{
    "name": "hello",
    "nested_object": {
        "nested_name": "nested"
    },
    "nested_list": [
        {
            "nested_key": "one"
        },
        {
            "nested_key": "two"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我可以通过对name字段进行过滤来找到此记录:

Session().query(Item).filter(Item.data["name"] == "hello")
Run Code Online (Sandbox Code Playgroud)

我可以通过同样过滤嵌套对象来找到此记录:

Session().query(Item).filter(Item.data[("nested_object","nested_name")] == "hello")
Run Code Online (Sandbox Code Playgroud)

但是,我正在努力通过过滤存储在嵌套列表中的项目的值来寻找找到此记录的方法。换句话说,如果用户提供了值“一”,我想找到上面的记录,并且我知道要nested_keynested_list.

是否可以使用可用的 SQLAlchemy 过滤器来实现这一点?

python postgresql json sqlalchemy

5
推荐指数
1
解决办法
4635
查看次数

标签 统计

json ×3

python ×3

sqlalchemy ×3

postgresql ×2

mongodb ×1

mongoose ×1

mysql ×1