2

让数据库中的记录为

{"_id":"1","unit":"a1", "vehicle1" : "car"}
{"_id":"2","unit":"a2", "vehicle1" : "truck", "vehicle2" : "bike"}
{"_id":"3","unit":"b1", "vehicle1" : "car"}
{"_id":"4","unit":"zz", "vehicle1" : "truck", "vehicle2" : "car", "vehicle3" : "car" }

是否有一个命令可以找到具有以下参数的条目或所有条目:

db.accidents.find( { vehicle*: "bike" } );
4

3 回答 3

8

而是有一个车辆阵列。

这是您可以插入的示例 JSON

{"_id":"2", "unit":"a2", "vehicle": ["truck", "bike"]}

您可以查询的方式是:

db.accidents.find({"vehicle":"bike"});
于 2012-11-25T19:07:24.423 回答
1

假设您不想更改数据,这是我能想到的唯一方法。

db.accidents.find( { $or: [
  {"vehicle1": "bike"}, 
  {"vehicle2": "bike"}, 
  {"vehicle2": "bike"}
]} )

显然要求您知道有多少种车辆* 变体。Sushant 提出的数组会更好。

于 2012-11-25T20:35:51.360 回答
0

如果车辆号码对您很重要。

{"_id": "2", 
 "unit": "a2",
 "vehicle": [{no: 1, name: "truck"}, {no:2, name: "bike"}]
}

之后,您可以单独查询每个字段,也可以使用高级查询操作。

于 2012-12-10T13:14:53.753 回答