如何使用mongoose读取已有数据库

在mongoose中,要插入数据库都需要定义schema,这儿就有一个问题,我如何读取一个不是我建立的一个表的值呢,下面是代码

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)

./mongo.js的内容
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/spider');
const ContentSchema = new mongoose.Schema({
  content: String
});

const DataSchema = new mongoose.Schema({});
const DataModel = mongoose.model('baidu', DataSchema, 'spider');

var ContentModel = mongoose.model('baidus', ContentSchema);
./index.js
const mongo = require('../lib/mongo');
const ContentModel = mongo.ContentModel;
const DataModel = mongo.DataModel;
router.all('/test', function (req, res) {
  DataModel.find({}, (err, content) => {
    if (err) res.send(err);
    res.send({
      code: 2,
      msg: content
    });
  });
});

router.all('/home', function(req, res) {
  ContentModel.find({}, (err, content) => {
    if (err) res.send(err);
    res.send({
      code: 1,
      msg: content
    });
  });
});

下面是表的结构

clipboard.png

你期待的结果是什么?实际看到的错误信息又是什么?

发现输出的内容content是一样的,都是baidus这个表的数据,问一下这是为什么呢!

阅读 4.6k
1 个回答

你需要参照要读取文档(document)中的各field类型,比如我要读取users文档,文档格式如下:
图片描述

下面是参考代码:

var mongoose = require('mongoose')
mongoose.connect('mongodb://localhost:27017/demodb')

var db = mongoose.connection;
db.on('error', function(error) {
  console.log(error);
});

// 定义schema
var users = new mongoose.Schema({
  name: {type : String, default : 'foo'},
  password: String
});
mongoose.model('User', users);

// 查询
var User = mongoose.model('User');
User.find((err, users) => {
  console.log(users)
  db.close()
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题