elemMatch没有按预期工作

时间:2016-12-24 09:26:00

标签: mongodb

我假设我有一个包含2条记录的模型MyModel

{
  _id: .,
  rating: [
    {
     "name": "user1",
     "rate": 3
    }
  ]
},

{
  _id: .,
  rating: [
    {
     "name": "user2",
     "rate": 5
    }
  ]
}

当我使用MyModel.find({rating: {$elemMatch: {"name": "user1"}}})时,它不会返回任何记录。

我希望通话能够返回第一条记录。

1 个答案:

答案 0 :(得分:1)

它是MyModel.find({"rating.name": "user1"})

As how mongodb doc says:

  

由于$ elemMatch仅指定单个条件,因此$ elemMatch   表达式不是必需的,而是可以使用以下内容   查询:

db.survey.find(
   { "results.product": "xyz" }
)

此外,$elemMatch也是

MyModel.find({"rating": {$elemMatch: {"name": "user1"}}})