node 操纵MongoDB数据库

mac安装

一、官网下载安装包:
https://www.mongodb.com/download-center/community?jmp=nav
二、下载后解压压缩包更名为mongodb
三、将解压好的压缩包移动到/usr/local目录下
四、打开终端,输入命令行export PATH=/usr/local/mongodb/bin:$PATH回车,这样以后启动mongodb就不用输很长的路径名。
打开终端,输入sudo mkdir -p /data/db,即可新建用于保存数据库文件。data/db文件夹被建于MAC的根目录中。
默认使用这个文件夹保存,如果想自行设置,可进入usr/local/mongodb/bin后启动终端,使用./mongod --dbpath=/你的路径 指定你的文件夹。

启动

sudo mongod
如果想修改默认的数据存储目录路径
sudo mongod --dbpath=数据存储目录路径

单击一下终端,command+n新建一个终端,输入cd /usr/local/mongodb/bin回车,进入mongodb bin文件夹,随后输入./mongo,回车,即可

exit退出连接

停止

在操作数据库的终端输入use admin后再输入db.shutdownServer()
或在开启服务的控制它control + c关闭

基本命令

show dbs // 查看显示所有数据库
db // 查看当前操作的数据库
use 数据库名 // 切换到指定的数据(如果没有会新建)

node中使用mongodb

一、使用官方的mongodb包来操作
https://github.com/mongodb/node-mongodb-native
二、使用第三方mongoose来操作mongodb数据库
https://mongoosejs.com/
例:

const mongoose = require('mongoose');
// 连接mongodb数据库
mongoose.connect('mongodb://localhost:27017/test', {
    useNewUrlParser: true
});
// 创建模型
const Cat = mongoose.model('Cat', {
    name: String
});
实例化一个cat
const kitty = new Cat({ name: 'Zildjian' });
// 持久化保存kitty实例
kitty.save().then(() => console.log('meow'));

mongoose详细操纵数据库

const mongoose = require('mongoose');

const Schema = mongoose.Schema;

mongoose.connect('mongodb://localhost/student', {
    useNewUrlParser: true
});

// 设计文档结构
const userSchema = new Schema({
    username: {
        type: String,
        required: true // 必须有
    },
    password: {
        type: String,
        required: true
    },
    email: {
        type: String
    }
})
// 将文档发布为模型
// 第一个参数传入一个大写名词单数字符串用来表示集合名
    // mongoose会自动将大写名词的字符串生成小写复数的集合名称
    // 例如这的User会最终变为users集合名称
// 第二个参数:架构 Schema
// 返回值:模型构造函数
const User = mongoose.model('User', userSchema)

增加数据

const admin = new User({
    username: 'admin',
    password: '123456',
    email: 'admin@admin.com',
})

admin.save().then(() => console.log('保存成功'));

查询所有

User.find((err, ret) => {
    if (err) {
        console.log('查询失败')
    } else {
        console.log(ret)
    }
})

查询匹配项(返回数组)

User.find({
    username: 'zs'
}, (err, ret) => {
    if (err) {
        console.log('查询失败')
    } else {
        console.log(ret)
    }
})

查询一条(按条件查询返回json)

User.findOne({
    username: 'zs'
}, (err, ret) => {
    if (err) {
        console.log('查询失败')
    } else {
        console.log(ret)
    }
})

查询第一条(返回json)

User.findOne((err, ret) => {
    if (err) {
        console.log('查询失败')
    } else {
        console.log(ret)
    }
})

删除符合条件的所有(返回json)

User.deleteMany({
    username: 'admin'
}, (err, ret) => {
    if (err) {
        console.log('删除失败')
    } else {
        console.log('删除成功', ret)
    }
})

删除符合条件的一条(返回json)

User.deleteOne({
    username: 'admin'
}, (err, ret) => {
    if (err) {
        console.log('删除失败')
    } else {
        console.log('删除成功', ret)
    }
})

更新

User.findByIdAndUpdate('5c7f9470f1c88ddc1e36c0ea', {
    username: '好人'
}, (err, ret) => {
    if (err) {
        console.log('更新失败')
    } else {
       console.log('更新成功', ret) 
    }
    
})
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容