Mongodb匹配除了第一个数组元素之外的所有元素

时间:2017-05-25 21:34:38

标签: mongodb mongodb-query

我有一个Mongodb文档,其中包含一系列预订:

{ id: myId,
  bookings: [
    {station: "Nurse"},
    {station: "Doctor"},
    {station: "Pharmacist"}
  ]
}

我查看了每个电台,他们看到了下次预订的所有记录。所以对于护士来说,这将是:find({"bookings.0.station": "Nurse"}),返回护士是预约数组中第一个元素的每条记录。

我想要添加的是第二个视图,其中可以看到所有后续预订,即。记录护士n n > 0的预订。

有这么简单的方法吗?或者我最好先检索所有文件然后过滤实际文件?

1 个答案:

答案 0 :(得分:1)

只做两个论点。这完全有效。因此查询包含查看所有元素的正面条件和仅在第一个元素上的$ne条件:

db.bookings.find({ 
  "bookings.station": "Doctor", 
  "bookings.0.station": { "$ne": "Doctor" }
})

返回,并且:

db.bookings.find({
 "bookings.station": "Nurse", 
 "bookings.0.station": { "$ne": "Nurse" }
})

没有。这当然是故意的。