查询以匹配数组的特定元素

时间:2015-07-24 08:31:21

标签: mongodb mongodb-query

我无法理解为什么我当前的查询没有返回正确的结果,这是我的代码:

private final LinkedBlockingQueue<Result> results = new LinkedBlockingQueue<Result>();

@Override
public void run() {
  while (!data.isEmpty()) {
    for (LocalTime dataTime : data) {
      if (new LocalTime().isAfter(dataTime)) {
        results.put(result);
      }
    }
  }
}

public Result takeResult() {
    return results.take(); 
}

以下是扩展结果的屏幕截图:

http://php.net/manual/en/function.json-encode.php

即使我查询评级范围0 - 1000(全部可能),我的结果也不会返回所有结果吗?!

1 个答案:

答案 0 :(得分:1)

特殊数组元素的多个条件是$elemMatch的用途:

db.getCollection('players').find({
  "ratings": { "$elemMatch": {
      "gameRatingType" : 'standard',
      "rating" : { "$gt": 234, "$lt": 235 } 
  }}
})

否则查询只是希望看到&#34;任何&#34; array元素包含您想要的条件。这确保了它在同一个&#34;数组元素,而不仅仅是文档中某处包含的元素。