Pymongo: Agregar todos os documentos que não possuem um campo e possuem outro - agrupar por

Chris

Estou tentando obter um conjunto de documentos de minha coleção com as seguintes condições:

  • campo: img_status não existe
  • campo: as imagens devem existir

Em seguida, agrupe esses documentos (únicos / distintos) por um campo. Quando executo a consulta no MongoDB, parece que ela retorna os valores corretos:

db.getCollection('products').aggregate([
{ $match: { images: { $exists: true, $ne: null } } },
{ $match: { img_status: { $exists: false } } },
{ $group : { _id:"$vendor_link", "uuid" : {$first: "$uuid"}, "images": { $first: "$images"} } }
])

Mas no PyMongo, sempre recebo o oposto, como img_status exist = true:

pipeline = [
    {
        "$match": 
        {   
            "images" : 
            { "$ne" : "null", "$exists": "true", } 
        }
    },
    {
        "$match": 
        {   
            "img_status": 
            {"$exists": "false"}
        }
    },
    {
        "$group":
        {
            "_id"       : "$vendor_link",
            "images"    : {"$first": "$images"},
            "uuid"      : {"$first": "$uuid"},
            "source"    : {"$first": "$source"}
        }},
]
pprint(list(self.collection.aggregate(pipeline)))

O que estou fazendo errado?

Srikanth Chekuri

Isso deve resolver o problema. Você está passando valores de string em vez de Nonevalores booleanos TrueeFalse

pipeline = [
    {
        "$match": {   
            "images" : {
                "$ne" : None,
                "$exists": True,
            } 
        }
    },
    {
        "$match": {
            "img_status": {
                "$exists": False,
            }
        }
    },
    {
        "$group":{
            "_id"       : "$vendor_link",
            "images"    : {"$first": "$images"},
            "uuid"      : {"$first": "$uuid"},
            "source"    : {"$first": "$source"}
        }
    },
]
pprint(list(self.collection.aggregate(pipeline)))

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

CosmoDB aplicando uma classificação por campo remove todos os documentos que não possuem esse campo

mangusto: encontre todos os documentos que possuem campo específico

Como encontrar todos os documentos que possuem um campo correspondente dentro de uma lista incorporada

ElasticSearch: Ao usar o recolhimento de campo, é possível retornar todos os documentos que não possuem um valor para a chave de recolhimento?

Xpath Obtendo todos os nós que possuem um atributo que corresponde a outro nó

Selecione todos os que possuem um número específico

Como remover todos os elementos do array que não possuem campo contendo string específica?

Obtenha todos os objetos que possuem entradas em outro modelo

Como posso extrair de um array de arrays todos os arrays que possuem o mesmo valor em seu primeiro campo?

Como devolver todos os departamentos que não possuem mulheres e o número de homens

Encontre os documentos que possuem o elemento no formato "dateTime" adequado

Como selecionar todos os elementos, que NÃO possuem um filho com determinada classe?

Como remover de um array todos os objetos que não possuem uma determinada propriedade?

Como selecionar todos os registros que não possuem um registro * específico * em uma subtabela

Consulta SQL para selecionar todos os usuários que possuem uma loja e não

Como posso excluir todos os valores que possuem uma coluna e um número de linha específicos?

Como encontro todos os registros que possuem um valor específico de uma associação?

Encontre todos os beans que possuem uma anotação personalizada

Encontre todos os beans que possuem uma anotação personalizada

ANDROID FIRESTORE: obtém todos os documentos que possuem "usuário atual" em sua sub coleção

Ruby on Rails, usando activerecord para obter todos os registros que possuem um campo especificado contendo uma string em meu array

O Mongodb seleciona todos os campos agrupados por um campo e classifica por outro campo

Encontre apenas os documentos que possuem dois documentos incorporados

Lista de todos os usuários que possuem mais de 40 documentos cada no ElasticSearch

Como retornar documentos que possuem uma matriz contém mais de um objeto com campo semelhante

Como obter todos os elementos que possivelmente possuem ancestrais e todos os seus ancestrais estão sem uma classe especificada?

PHP: array_diff remove todos os elementos que não possuem um caractere numérico na string

Não é possível obter todos os itens do pedido e continuar recebendo linhas de pedidos que possuem subcomponentes

Como contar o número de documentos que possuem um valor único máximo considerando cada subcampo dentro de um determinado campo?

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo