【发布时间】:2016-05-28 02:24:17
【问题描述】:
我在集合中存储了一个文档,当我尝试通过 findOne 检索它时,它返回错误的结果: 我的 Mongoose 模型是这样的:
var db = require('../db');
var mongoose = db.mongoose_var;
var companySchema = mongoose.Schema({
companyName:String
});
module.exports = mongoose.model('Company',companySchema);
然后我在 server.js 中用作:
var CompanySchema = require('./schemas/companySchema');
当我试图查找已插入的记录时,如下所示:
CompanySchema.findOne({'Company.companyName':jsonObj.companyName},function(err,companyName){
console.log('companyName foudn:'+companyName);
if(companyName !== null){
res.status(404).json({status:'Name already in the DB'});
return;
}else{...
它无法找到该记录,但它返回的可能是第一条记录。 thedb中存在以下记录:
当我尝试添加另一家公司并使用此 findOne 检查此名称是否已存在时,findOne 仅返回此记录。我的日志sn-ps
而 mongo shell 只返回正确的结果。
在 mongo shell 中,我在字段和值周围使用“”,而不是在 findOne Api 中。 提前致谢
【问题讨论】:
-
也许不相关,但以防万一有人像我一样最终来到这里……遇到了类似的问题,
findOne在不应该返回“记录”时返回了“记录”。然而,我最终意识到它正在返回 Promise。 Doh 我总是犯这个错误,记得await。
标签: node.js mongodb mongoose mongoose-schema