Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mongodb中尝试从shell执行find()时获取引用错误16722_Javascript_Node.js_Mongodb_Mongoose_Referenceerror - Fatal编程技术网

Javascript 在mongodb中尝试从shell执行find()时获取引用错误16722

Javascript 在mongodb中尝试从shell执行find()时获取引用错误16722,javascript,node.js,mongodb,mongoose,referenceerror,Javascript,Node.js,Mongodb,Mongoose,Referenceerror,我是mongodb的新手,我遇到了一个看似简单的问题,但google给了我一大堆似乎不相关的mapreduce场景 我有一个收藏,里面有一份文件。如果尝试按其中一个字段进行搜索,则会出现错误: > db.users.find('u_email', "") error: { "$err" : "ReferenceError: u_email is not defined", "code" : 16722 } 然后mongoDB输出如下错误: Tue Dec 03 02:55:13.085

我是mongodb的新手,我遇到了一个看似简单的问题,但google给了我一大堆似乎不相关的mapreduce场景

我有一个收藏,里面有一份文件。如果尝试按其中一个字段进行搜索,则会出现错误:

> db.users.find('u_email', "")
error: { "$err" : "ReferenceError: u_email is not defined", "code" : 16722 }
然后mongoDB输出如下错误:

Tue Dec 03 02:55:13.085 [conn1] assertion 16722 ReferenceError: u_email is not defined ns:test.users query:{ $where: "u_email" }
我的mongoose用户模式具有u_电子邮件字段:

var userSchema = new mongoose.Schema({
    'u_id'      : {type:String, unique:true},
    'u_email'   : {type:String, required:true, unique:true}, 
    'u_name'    : {'first'  : {type:String}, //first name
                   'last'   : {type:String} //last name 
                  },
});
不知道这里发生了什么。我尝试在我的app.js中使用mongoose执行findOne(),但它没有显示任何内容。这很奇怪,因为它返回的是正确的_id,而不是其他:

var email = email@dns.com;
User.findOne('u_email', email).exec(function (err, doc) {
    console.log(doc);
}
结果:

{ _id: 529d8cfb03820d5410000002, u_name: {} }
以下是我的db.users.getIndexes()供参考:

> db.users.getIndexes()
[
        {
                "v" : 1,
                "key" : {
                        "_id" : 1
                },
                "ns" : "test.users",
                "name" : "_id_"
        },
        {
                "v" : 1,
                "key" : {
                        "u_id" : 1
                },
                "unique" : true,
                "ns" : "test.users",
                "name" : "u_id_1",
                "background" : true,
                "safe" : null
        },
        {
                "v" : 1,
                "key" : {
                        "u_email" : 1
                },
                "unique" : true,
                "ns" : "test.users",
                "name" : "u_email_1",
                "background" : true,
                "safe" : null
        }
]

MongoDB shell的查询格式是
{KEY:VALUE,…}

> db.users.find({ 'u_email' : '' })
猫鼬也是如此:

User.findOne({ 'u_email' : email }).exec(function (err, doc) {
  console.log(doc);
});

啊。我一定是瞎子;应该在凌晨3点停止编程。谢谢。