【问题标题】:Collections is showing but documents is not showing in mongoDB集合正在显示,但文档未在 mongoDB 中显示
【发布时间】:2016-12-26 07:29:24
【问题描述】:

我是 MEAN 网络应用程序的新手,我在 MEAN 中下载了虚拟项目

注册并登录。 mongoDB连接成功,我创建了一个集合

用户。注册和登录功能运行良好。一切正常。但我是

对用户收集文档感到困惑。当我注册时,数据肯定会进入用户集合,因为登录成功但是当我使用这个命令时

                           db.collection.find() 

没有任何结果表明我创建了这么多帐户并成功使用它们登录

如果我使用了错误的用户名或密码,则不允许登录。请告诉我

在 mongoDB 中存储数据的位置。下面

我的 app.js 文件

var express = require('express');
var path = require('path');
var favicon = require('serve-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');

var routes = require('./routes/index');
var api = require('./routes/api');
var users = require('./routes/users');

// database connectivity
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/ditroapp');
var db = mongoose.connection;

db.on('error', function (err) {
  console.log('mongo connection error', err);
});

db.once('open', function () {
  console.log('mongo connected.');
});

var app = express();

// view engine setup
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');

// uncomment after placing your favicon in /public
//app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
app.use(logger('dev'));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(cookieParser());
app.use(express.static(path.join(__dirname, 'public')));

app.use('/', routes);
app.use('/api', api);
app.use('/users', users);

// catch 404 and forward to error handler
app.use(function(req, res, next) {
  var err = new Error('Not Found');
  err.status = 404;
  next(err);
});

// error handlers

// development error handler
// will print stacktrace
if (app.get('env') === 'development') {
  app.use(function(err, req, res, next) {
    res.status(err.status || 500);
    res.render('error', {
      message: err.message,
      error: err
    });
  });
}

// production error handler
// no stacktraces leaked to user
app.use(function(err, req, res, next) {
  res.status(err.status || 500);
  res.render('error', {
    message: err.message,
    error: {}
  });
});


module.exports = app;

【问题讨论】:

  • 你是否正确激活了mongo的shell?您还需要切换到正确的数据库。
  • @GandalftheWhite:-当我使用命令提示符插入数据时,这些数据使用命令 db.user.find() 显示,但使用注册表单插入的数据未显示
  • 那你的插入肯定有问题。检查集合的名称等,除非您深入研究自己的代码,否则很难找出您的问题。我们不知道你到底在做什么。
  • 插入的代码在哪里?

标签: node.js mongodb mean


【解决方案1】:

我不知道我是否理解了你的问题。 在 mongoshell 中,如果你想使用某个数据库,你必须运行命令 “使用 name_db” 其中 name_db 是您创建的数据库的名称。之后,您可以使用命令“show collections”显示所选数据库中的集合。 之后,您可以使用命令找到集合中的所有文档 db.name_collection.find() where nome_collection 如果要检索数据的集合的名称

【讨论】:

  • 我做了所有步骤,但问题是一样的,我在 app.js 文件中创建了连接,这个数据库显示了 show dbs
  • 可能问题出在 javascript 代码中没有正确插入数据库中的数据
  • 没有数据插入成功,因为注册后我可以登录,否则不允许登录
  • 您确定在 mongoshell 中选择了更正的数据库。在 app.js 中,数据库的名称是 ditroapp。在执行 find() 之前,您必须先通过命令 use ditroapp 选择数据库
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-14
  • 2017-01-10
  • 1970-01-01
  • 1970-01-01
  • 2016-04-21
  • 2018-11-26
  • 1970-01-01
相关资源
最近更新 更多