如何进行Mongo查询查询?

时间:2016-05-07 21:21:23

标签: node.js mongodb

我来自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){...});

我做错了什么?我该如何查询?

1 个答案:

答案 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