如何使用多个条件查询和这些条件都依赖
问题描述:
假设“A001”, “A002”, “A003”在symptoms_N意味着“鼻子过敏”如何使用多个条件查询和这些条件都依赖
假设“Z001”,“ Z002"在symptoms_N意味着‘鼻癌’
我想找到那些谁得到鼻癌和民政g^ot 鼻子过敏得癌症之前。
例如,以下2条记录打到了我想要的目标。
我可以推断杰克得到了“鼻癌”在2015年4月2日,
和他所拥有“鼻子过敏” 2011-04-02。
我可以找到鼻子过敏记录与$或聚合运营商。像db.collection.find({"$or": OR_CONDITIONS})
我不知道如何完成MongoDB中的复合条件查询。
{
"name": "Jack",
"symptoms_1": "B00 ",
"symptoms_2": "A001 ",
"symptoms_3": " ",
"datetime": "2011-04-02"
},
....
{
"name": "Jack",
"symptoms_1": "",
"symptoms_2": "",
"symptoms_3": "Z001",
"datetime": "2015-04-02"
},
答
您将条件放在[{},{},{},{}]数组中(因为数组是有效的json)。
db.inventory.find({ $or: [ { "symptom_1": "Z001" }, {"symptom_2": "Z002" }] })
其实
,你可能会寻求运营商在一个公共的场
db.collection.find({ "symptom_1": { $in: ["Z001", "Z002", "A001", "A002", "A003"]});
工作的$,它似乎想要梳通所有症状字段,以便同时使用$或和$作为
db.collection.find({$or:
[
{"symptom_1": { $in: ["Z001", "Z002", "A001", "A002", "A003"]}},
{"symptom_2": { $in: ["Z001", "Z002", "A001", "A002", "A003"]}} ,
...
]});
大括号可能不匹配,但从此开始。
我知道了。但如何添加可以查询某人的相关条件首先患有过敏反应,之后又得了癌症? – newBike 2015-04-02 06:14:28
那么你需要看看聚合不简单的发现。你的鼻癌,鼻子过敏是混淆这个问题。尝试“A001”,“A002”,“A003”意味着X和...意味着Y或者简单地放弃多个条件并使用A001和Z001 – 2015-04-02 17:58:05