javascript - Mongoose findOne() 回调返回 null

标签 javascript node.js mongodb mongoose

我正在尝试使用 mongoose 在我的 Node 应用程序中查找用户

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);
        }
    });
}

erruser 始终返回 null。从这里的其他问题( thisthis )来看,这通常似乎与 Mongoose 复数集合有关。但是,我不认为这是我的问题,因为我的 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
    }
});

最后,我确信公共(public)地址存在,因为我可以使用 Robo 3T 在 mongoDB 中看到它。

最佳答案

在您的 userSchema 中,publicAddresslocal 对象的一部分。

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);
        }
    });

关于javascript - Mongoose findOne() 回调返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45375603/

相关文章:

javascript - Warp.js 日期从前一个日期开始

javascript - 根据匹配查询 MongoDB NodeJS 更新所有文档和嵌入文档中的字段

node.js - 在 node.js 的子进程中使用 vim 时出现 stdio/管道问题

javascript - Mongoose 数组返回空?

javascript - Mongodb - 您可以使用 javascript 对象文字属性值简写来更新两个值吗?

javascript - 如何使用 javascript 将表 th 转换为 li 并将 td 转换为 <p>?

javascript - 适合容器内的实时文本

Node.js 在 Kubernetes 上横向扩展

java - spring-data mongo 中不区分大小写的精确匹配

javascript - 提交时过滤数据