MongoDB 和 Mongoose 查询语句写法有什么不同?

发布于 2022-09-01 21:22:35 字数 416 浏览 8 评论 0

MongoDB 可以这样写

db.getCollection('users').find({})

或者

db.users.find({})

这里的 db 是什么,在代码中应该怎样定义?

在 mongoose 通常这样写:

var User = require('../models/user')
User.find({})

怎样在 mongoose 中应该怎样定义 db 才可以也写作

db.users.find({})

这种写法?

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

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

发布评论

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

评论(3

薄暮涼年 2022-09-08 21:22:35

(⊙o⊙)… 你看看你的代码前面有木有

var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/tasks');

这样的代码啊?db其实就是一个mongoose的连接实例。

而你的User是一个Model来的吧?你的代码应该差不多是这样的:

var mongoose = require('mongoose');
var db = mongoose.connect('mongodb://localhost/tasks');
var schema = new mongoose.Schema({
    name: String,
    path: String
});
module.exports = mongoose.model('User', schema);

这样你就可以使用:

User.find({});
沉睡月亮 2022-09-08 21:22:35

db 是当前操作的数据库操作对象,是指使用 use db 切换到的数据库

欲拥i 2022-09-08 21:22:35
module.exports = mongoose.model('User', schema);

应该像楼上说的那样,你的model文件里是像上面那样写的,这样的话只能像下面这样的写法。

var user = require('../model/user');
user.find({})

但是如果使用mongoose却非得要把写法写成db.users.find({}),可以在model文件里改一下也可以满足:

//model
module.exports = {
    'users' : mongoose.model('User', schema)
}

//api
var db = require('../model/user');
db.users.find({})
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文