Mongo find () внутри определенного массива - PullRequest
0 голосов
/ 03 октября 2018

Я пытаюсь найти элементы с определенным путем \ parent.

Пример данных:

Документ A:

{
  "traces": [{
      "act": {
        "account": "555",
        "name": "Bob"
      }
    },
    {
      "act": {
        "account": "666",
        "name": "Mary"
      }
    }    
  ],
  "other": [{
      "act": {
        "account": "555",
        "volume": "PPPPP"
      }
    }
  ]
}

Документ B:

{
  "traces": [
    {
      "act": {
        "account": "666",
        "name": "Mary"
      }
    }    
  ],
  "other": [{
      "act": {
        "account": "555",
        "volume": "PPPPP"
      }
    }
  ]
}

Поэтому при поиске в двух вышеуказанных документах я хочу, чтобы мой поиск соответствовал Документу A, но НЕ документу B

Если я использую приведенный ниже оператор поиска:

db.action_traces.find({ "act.account" : { $in: [ "555" ]}).limit().forEach(function(result){
print(.....);
});

Itпохоже, что он будет соответствовать A и B, потому что оба имеют элементы в разделе "other", которые соответствуют.

Как мне указать, что я хочу сопоставлять только трассы. {Любой элемент в массиве} .act.account?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...