我来自MySQL世界所以mongo查询有点难以考虑,因为我无法理解mongo样式查询。我正在尝试查找字符串。问题来自我对mongodb查询的非常原始的了解,我所做的查询并不起作用。我在mongoose和mongo shell中尝试过它。
架构:
mongoose.Schema({
doctorID : String,
patientIDList : Array // array of strings
});
查询目标:
我想找一位doctorID
的医生,然后在patientIDList
内查找身份证xxx
。如果patientIDList
不包含xxx
,则在列表中添加xxx
,否则只添加任何内容。
查询:
我试过的2个查询
MyModel.findOne({'doctorID':newAppointment.doctorID}, {'patientIDList' : newAppointment.patientID}, function(err){...});
MyModel.findOne({'doctorID': newAppointment.doctorID, 'patientIDList': newAppointment.patientID}, function(err){...});
我做错了什么?我该如何查询?
答案 0 :(得分:0)
从SQL切换到NoSQL DB以及其他方式总是有点挑战。您要做的是检查数组中是否存在值。如果数组是字符串数组,则只需查询数组中的值即可。
MyModel.findOne({doctorID : newAppointment.doctorID}, {patientIDList :newAppointment.doctorID}, function(err, res){
console.log(err, res);
})
进一步阅读:https://docs.mongodb.com/manual/tutorial/query-documents/#match-an-array-element
相关问题:Find document with array that contains a specific value