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

发布于 2022-09-07 22:44:24 字数 1174 浏览 13 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓝礼 2022-09-14 22:44:24

你需要参照要读取文档(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()
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文