让数据库中的记录为
{"_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" } );
答案 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"}]
}
之后,您可以单独查询每个字段,也可以使用高级查询操作。