个人总结,欢迎补充,不对的还清指正
本文主要介绍 通过Mongoose操作MongoDB数据库,分享给使用Node的小伙伴
Mongoose基本使用
1.安装
npm install mongoose --save
2.链接
//db.js
const mongoose=require('mongoose')
//连接MongODB数据库(nodebooks为数据库名称,请自行添加用户名、密码)
mongoose.connect("mongodb://127.0.0.1/nodebooks",{useNewUrlParser:true},function(err){
if (err) {
console.log('连接失败')
}else{
console.log('连接成功')
}
})
3.数据建模
const mongoose=require('mongoose')
const Schema=mongoose.Schema;
const IdeaSchema=new Schema({
user:{
type:String, //类型
default: 0, //默认值
required:true //是否必填
},
data:{
type:Date,
default:Date.now
}
})
//创建模型
module.exports=mongoose.model('ideas',IdeaSchema) //'ideas' 集合名字
4.引入模型,并使用
//引入数据库连接 db为 第二步 的链接的js文件
const db=require('../config/db')
//引入模型
require('./models/idea')
const idea=mongoose.model('ideas')
//查询
idea.fine({})
查询
1.查询所有结果
find()
2.指定返回那些字段和不返回那些值
// 1 表示返回该字段,0表示不返回那些字段,可单独使用
find({},{"name":0,"age":1})
3.单条件查询
// 根据 _id查询 返回所有符合条件的数组
find({_id:1})
// 根据 _id查询 返回符合条件的第一个字符集(适合唯一性查询)
findOne({_id:1})
4.多条件查询
// 根据 _id查询 返回所有符合条件的数组
find({_id:1,age:16})
// 根据 _id查询 返回符合条件的第一个字符集(适合唯一性查询)
findOne({_id:1,age:16})
```1.查询所有结果
```javascript
find()
5.或 条件查询
// 查询满足 name=xiaoming 或者 age=16任意一个即可
find({"$or": [{"name":"xiaoming"},{"age": 16}]})
6.比较条件查询
//age 大于100或者小于10的结果
find({"age":{"$gt":100,"$lt":10}})
/**
* $gt 大于
* $gte 大于等于
* $lt 小于
* $lte 小于等于
* $ne 不等于
*
**/
7.包含条件查询
// 名字 满足 a, b , c 的结果
find({"name":{"$in":["a","b","c"]}})
// 名字 不满足满足 a, b , c 的结果
find({"name":{"$nin":["a","b","c"]}})
10.输出几条
find()
.limit(10)
11.从第几条输出
find()
.skip(10)
12.升、降序
//升序
find()
.sort({"_id": -1})
//降序
find()
.sort({"_id":1})
11.从第几条输出
find()
.skip(10)
```11.从第几条输出
```javascript
find()
.skip(10)
12.一共几条
find({})
.countDocuments()
//注意count已经弃用,未来可能会被删除
find({})
.count()
添加
insert({'name':1})
.then(idea=>{
//存储成功
})
new Idea(str)
.save()
.then(ides=>{
//存储成功
})
更新
1.基本用法
// 第一个括号是条件,第二个括号是更新内容
update({"age": {"$gt": 10}}, {"$set": { "title": "mongodb"}})
// 如果_id 不存在 则插入,存在则更新
save({_id: 123, title: "mongodb"})