【发布时间】:2015-03-15 09:27:23
【问题描述】:
我在我的节点应用程序上使用猫鼬,我想通过它的电子邮件得到一个卖家:
getSellerByEmail : function(email,next){
var Seller = mongoose.model('Seller');
console.log(inspect(email));
Seller.findOne({'email' : new RegExp(email, 'i')}, function(seller){
next(seller);
});
}
当我尝试登录时,猫鼬不会返回新用户。但是当我尝试使用相同的电子邮件创建另一个用户时,服务器会正确执行此函数并返回新用户。
还尝试使用{'email' : email},它返回null,但是当我在mongo shell 上执行此查询时,它正确返回。
db.sellers.findOne({email : 'email@email.email'});
{
"_id" : ObjectId("54b94759b042bdbf19cb7b97"),
"name" : "Nome da Empresa",
"cnpj" : "123123123",
"email" : "email@email.email",
"password" : "$2a$08$6UvW8Bux3CwUMok8ac12Sehbd.xCHnVUI51ZwhtGKBjkSa6/MrqUu",
"__v" : 0
}
我是 mongodb + mongoose 的新手,所以我知道这是一个愚蠢的问题,但我就是不知道出了什么问题……我还创建了一个 findSellerById() 函数,它运行良好。
编辑 1:
使用 Mongoose 调试,打印出来的内容如下:
Mongoose: sellers.findOne({ email: 'email@email.email' }) { fields: undefined }
Mongoose: sellers.findOne({}) { fields: undefined }
如您所见,也试过不带参数,没有成功...
【问题讨论】:
标签: javascript node.js mongodb express mongoose