【问题标题】:data created from mongoose not showing on mongodb从 mongoose 创建的数据未显示在 mongodb 上
【发布时间】:2016-01-25 02:10:58
【问题描述】:

我有一个与 mongodb 相关的问题。 目前,我正在使用 node.js 和 express.js 为 android 应用程序构建 rest api。对于数据库,我使用的是 mongodb 和 mongoose ......我遇到的问题是我可以使用 mongoose 插入和打印数据,但似乎使用 mongoose 插入的数据没有显示在 mongodb 上..

我尝试的是在命令行上运行 mongod 和 server.js 并使用 mongoose 插入数据。然后,在命令行上,我打开了 mongo --> use --> db..find() 什么也没显示。我做错了什么?在 localhost 上运行 mongod 和 server.js

--编辑

passport.use('signup', new LocalStrategy(
    {
        usernameField : 'email', // the name of username that got passed into this strategy
        passwordField : 'password', // the name of the password that got passed into tis strategy
        passReqToCallback : true
    },
    function(req, email, password, done) {
        // done(...) where ... is (err, user, info)
        process.nextTick(function() {
            // find user with username
            User.findOne({ email : email }, function(err, user){
                if(err) return done(err);
                if(user) return done(null, false, { message : 'User already exists.' });

                // save the user
                var newUser = new User();
                newUser.email = email;
                newUser.password = newUser.generateHash(password);

                newUser.save(function(err) {
                    if(err) return done(err);
                    return done(null, newUser);
                });
            });
        });
    }
));

我正在使用护照进行身份验证,在这里我正在插入新用户。我尝试通过执行打印出所有用户

User.find({}, function(err, users){
                console.log(users);
            });

只是尝试查看新用户已插入.. 我看到日志中的所有用户...但是,如果我转到命令行 mongo 并执行 db.User.find(),我不会什么都看。。 谢谢!

【问题讨论】:

  • 你能把插入数据的代码贴出来吗?
  • @eblahm 已编辑.. ^^
  • 您是否尝试使用小写用户 db.users.find()db.user.find(),具体取决于您的收藏名称
  • 考虑下载这个...robomongo.org ...它是一个很好的工具,可以查询和可视化 mongo 数据库中的内容,而不必与命令行争论
  • @eblahm show dbs 显示用户。 db.users.find() 和 db.user.find() 对我不起作用

标签: node.js mongoose


【解决方案1】:

这就是大多数人使用 mongoose 创建集合的方式

var User = mongoose.model("User",userSchema );

这将在 mongoose 中创建一个名为 users 的集合。它将使第一个字母变为小写,即:“u”并添加“s”。所以你可以检查你的数据db.users.find()我希望这会有所帮助。我不知道你是否知道这些信息。

它还提到了 here 关于编译你的第一个模型。

第一个参数是您的模型所针对的集合的单数名称。 Mongoose 会自动查找您的型号名称的复数形式。

this 也可能有帮助

【讨论】:

  • 谢谢..我是 mongodb 和 node.js 的新手,所以我不太了解...您的回答对我帮助很大!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
  • 2014-08-30
  • 2018-06-17
  • 2018-03-15
  • 2014-01-21
相关资源
最近更新 更多