Javascript Mongoose findOne()回调返回null
我正试图通过使用在我的节点应用程序中查找mongoose的用户Javascript Mongoose findOne()回调返回null,javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我正试图通过使用在我的节点应用程序中查找mongoose的用户 var User = require('../app/models/user'); function mongoTest() { var publicAddress = "0x8a6be8979340faa30020b0c1f617d8fd4309679f"; User.findOne({"publicAddress": publicAddress}, (err, user) => { if
var User = require('../app/models/user');
function mongoTest() {
var publicAddress = "0x8a6be8979340faa30020b0c1f617d8fd4309679f";
User.findOne({"publicAddress": publicAddress}, (err, user) => {
if (err) {
res.status(500).send(err)
} else {
console.log(user);
}
});
}
和err
和user
始终返回null
。从这里(和)的其他问题来看,这似乎通常与猫鼬的多元化收藏有关。但是,我不认为这是我的问题,因为我的users.js
module.exports = mongoose.model('User', userSchema);
// Have also tried module.exports = mongoose.model('User', userSchema, 'User');
为了完整性,users.js是
var mongoose = require('mongoose');
var bcrypt = require('bcrypt-nodejs');
// Define the schema for our user model
var userSchema = mongoose.Schema({
local: {
username: String,
password: String,
pictureCaption: String,
publicAddress: String,
contractAddress: String
}
});
最后,我确信公共地址是存在的,因为我可以在mongoDB和Robo 3T中看到它。在您的
userSchema
中,publicAddress
是local
对象的一部分
var userSchema = mongoose.Schema({
local: {
username: String,
password: String,
pictureCaption: String,
publicAddress: String,
contractAddress: String
}
});
您正试图找到一个具有publicAddress
的对象,但它实际上位于local
对象中。因此,您应该按如下方式编辑查询以获得结果
User.findOne({"local.publicAddress": publicAddress}, (err, user) => {
if (err) {
res.status(500).send(err)
} else {
console.log(user);
}
});
在
userSchema
中,publicAddress
是local
对象的一部分
var userSchema = mongoose.Schema({
local: {
username: String,
password: String,
pictureCaption: String,
publicAddress: String,
contractAddress: String
}
});
您正试图找到一个具有publicAddress
的对象,但它实际上位于local
对象中。因此,您应该按如下方式编辑查询以获得结果
User.findOne({"local.publicAddress": publicAddress}, (err, user) => {
if (err) {
res.status(500).send(err)
} else {
console.log(user);
}
});
您的Mongo集合必须命名为
users
,是这样吗?是的,就是这样。啊啊,publicAddress
嵌套在local
中。您应该调用User.findOne({“local.publicAddress”:publicAddress}
Err
为空是因为没有错误,user
为空是因为Mongo没有找到任何东西。您的Mongo集合必须命名为users
,是这样吗?是的,是这样的。啊哈,publicAddress
嵌套在local
中。您应该调用user.findOne({“local.publicAddress”):publicAddress}
Err
为空是因为没有错误,user
为空是因为Mongo没有找到任何东西。就是这样,为分心道歉!妈的,我应该把它作为一个答案而不是评论发布。看到你的评论后没有复制粘贴。我本来要写的,只是晚了一点。就是这样,阿波罗ogies!妈的,我应该把它作为一个答案而不是一个评论发布。看到你的评论后没有复制粘贴。我本来要写的,只是有点晚了。