Nodejs Продолжить Postgres - PullRequest
       8

Nodejs Продолжить Postgres

0 голосов
/ 01 августа 2020

Моя цель - найти идентификатор в JSONB. Я использую DataTypes.JSONB.

Мои данные выглядят так:

{"id": ["8a20b9c0-d3c5-11ea-895e-8757d6b9cab5", "8a1f3320-d3c5-11ea-895e-8757d6b9cab5", "8a226770-d3c5-11ea-895e-8757d6b9cab5"]}

Запрос, который я использую и НЕ работаю:

Product.findAll({
            where:{  
              'sub_category_ids.id': {
                [Op.contains]: '["'+req.params.subcategoryId+'"]'
              }

Необработанный запрос выглядит так, а НЕ работает:

SELECT * 
FROM "Products" AS "Product" 
WHERE ("Product"."sub_category_ids"#>>'{id}') @> '["8a1f3320-d3c5-11ea-895e-8757d6b9cab5"]' 
ORDER BY "Product"."createdAt" DESC;

Я не получаю результата. Но когда я использую этот запрос, он работает:

SELECT * 
FROM "Products" AS "Product" 
WHERE ("Product"."sub_category_ids"->'id') @> '["8a20b9c0-d3c5-11ea-895e-8757d6b9cab5"]';

Что я делаю не так или как это исправить?

1 Ответ

0 голосов
/ 01 августа 2020

Попробуйте это

Product.findAll({
        where:{  
          sub_category_ids: {
            id:{
             [Op.contains]: '["'+req.params.subcategoryId+'"]'
            } 
          }
         }
       })
...