在mongodb和文字对象中查找函数

时间:2014-07-14 02:46:21

标签: node.js mongodb mongoose

我在nodeJS上使用Mongoose,我在MongoDB中有以下模式:

var users = new Schema({
    local:  {
        user_uuid:       String
        ,user_name:      String
        ,password:       String
        ,email:          String
        ,connectionKey:  String
    }
});

我正在以下列方式导出架构:

module.exports.users = mongoose.model('users',users);

这是我的发现:

var AllSchemas = require('../schemas/schemas');
...
AllSchemas.users.find({ user_uuid: doctorId},function(err,obj){
   ...
}

但是我发现找不到用户。 如果我从文字对象“本地”中取出所有参数,它将起作用 我想知道如何在文字对象中找到东西。

2 个答案:

答案 0 :(得分:0)

您需要使用dot notation覆盖查询中的嵌入文档内部:

AllSchemas.users.find({ 'local.user_uuid': doctorId }, function(err,obj) {
    ...
}

答案 1 :(得分:0)

在引用架构中的子对象时,应使用引号内的点表示法。 请参阅以下链接以获取有关点符号的更多信息

http://docs.mongodb.org/manual/core/document/#document-dot-notation

在您的情况下,您应该使用:

AllSchemas.users.find({' local.user_uuid':doctorId},function(err,obj){    ... }

此查询将返回user_uuid等于doctorId的所有文档。