Mongodb查询从多个键中选择记录

时间:2012-11-25 19:03:59

标签: mongodb select

让数据库中的记录为

{"_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" } );

3 个答案:

答案 0 :(得分:8)

而是有车辆阵列。

以下是您可以插入的示例JSON

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

您可以查询的方式是:

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

答案 1 :(得分:1)

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

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

显然你需要知道有多少车辆*变种。 Sushant建议的阵列会更好。

答案 2 :(得分:0)

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

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

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