sql >> Databáze >  >> NoSQL >> MongoDB

Názvy polí FieldPath nesmí obsahovat '.' při pokusu o použití AGGREGATE

Můžete použít níže uvedený dotaz

Pokud používáte $expr pak v něm můžete snadno použít agregační operátor. Takže místo použití .dot k nalezení prvku můžete použít $arrayElemAt operátora, který vám poskytuje možnost vybrat si požadovaný prvek.

db.table.aggregate([
  { '$match': {
    '$expr': {
      '$and': [
        { '$eq': [{ '$size': '$events' }, 4] },
        { '$lt': [{ '$arrayElemAt': ['$events.updated', 0] }, '2019-05-05'] }
      ]
    }
  }}
])

Nebo způsob, jakým jste se to snažili udělat

db.collection.aggregate([
  { "$match": {
    "events.0.updated": { "$lt": "2019-05-05" },
    "$expr": { "$eq": [{ "$size": "$events" }, 4] }
  }}
])

Můžete zkontrolovat $expr chování zde




  1. Získání 'mongoimport' není rozpoznáno jako interní nebo externí příkaz, operační program nebo dávkový soubor. při pokusu o import dat ze souboru

  2. MongoDB $dayOfYear

  3. Agregát MongoDB s PHP - seskupení podle data

  4. Zašifrovat/dešifrovat vlastnost při zápisu/čtení do c# mongo db