我正在尝试使用
在我的节点应用中找到一个使用mongoose的用户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
。从这里的其他问题(this和this),这通常似乎与猫鼬复数集合有关。但是,我不认为这是我的问题,因为我的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
}
});
最后,我确信公共地址存在,因为我可以在使用Robo 3T的mongoDB中看到它。
答案 0 :(得分:1)
在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);
}
});