MongoDB仅在请求中存在不同字段时查询它们

时间:2018-07-28 01:08:03

标签: mongodb search

如何根据请求查询集合中的不同字段?

例如,我有一个名为Cars的收藏。其结构如下: { make:字符串, 年:数字, 型号:ing }

如果请求如下所示:{make:“ Toyota”},则需要查询“ make”属性。

如果请求如下所示:{year:2000},则需要查询“ year”属性。

如果请求看起来像这样:{make:“ Toyota”,型号:“ Camry”}},我需要同时查询“ make”和“ model”属性。

2 个答案:

答案 0 :(得分:0)

MongoDB使用Javascript对象来查询文档。例如:

db.collection.find(QueryObject)

其中 QueryObject 具有键和值,在您的情况下,可以为 {make:“ Toyota”} 。接收到的请求已经在对象表示法中,因此,如果直接将其传递给 collection.find()方法,它应该可以工作。

但是,这不是安全的做法,因为它允许您的客户直接请求任何数量的数据,而无需进行健全性检查。不安全的查询会导致许多问题。

答案 1 :(得分:0)

就像这样:-

  Reserve.find({event_id:events._id,event_id2:events._id2}, function (err, reservations) {
                if (err) return res.status(500).send("There was a problem finding the reservation."); 
    })