H5W3
当前位置:H5W3 > 其他技术问题 > 正文

如何使用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这个表的数据,问一下这是为什么呢!

回答:

你需要参照要读取文档(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()
});

本文地址:H5W3 » 如何使用mongoose读取已有数据库

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址