Mongo语法

数据库概念对比

SQLMongo
表(Table)集合 (collection)
行 (Row)文档 (Document)
列 (Col)字段 (Field)
主键 (primary Key)对象ID (ObjectId)

数据库操作

创建数据库use demo
查看数据库show dbs
删除数据库db.dropDatabase()

集合操作

创建集合db.createCollection(name)
查看集合show collections
删除集合db.collection.drop()

文档操作

创建文档db.collection.insertOne({}) db.collection.insertMany({})
查看文档db.collections.find({}) db.collections.findOne({})
删除文档db.collection.deleteOne() db.collection.deleteMany()
更新文档db.collection.update({],{},false,true})

条件操作

大于$gt
小于$lt
大于等于$gte
小于等于$lte

返回数据库指定的字段

// 方式一
const response =  集合名称.findOne({
   查询的字段:查询的参数,
   ...
},'返回的字段1 字段2 字段3 ...')
   
// 方式二
/**
* 通过json方式 1是返回 0是不返回
*/
const response =  集合名称.findOne({
   查询的字段:查询的参数,
   ...
},{key1:1,key2:1,...})

// 方式三
/*
* 通过 select("key")
*/
 const response = 集合名称.findOne({
    查询的字段:查询的参数,
    ...
}).select('key','key')

批量更新数据技巧

// 方式一
/*
* 这里的User是定义好的数据模型
*/
const User = require('./../models/userSchema')
const res =  User.updateMany({ $or: [{ userId: 10001 }, { userId: 10002 }] },{state:2})
/*
* 表示将userId 10001,10002数据中的 state 改为 2
*/

// 方式二
const User = require('./../models/userSchema')
const res = User.updateMany({userId:{$in:[10001,10002]}},{state:2})

上面两种方法都会返回删除后的条数


查找并更新数据

const User = require('./../models/userSchema')
/*
* 这里的User是定义好的数据模型
* 查找 User集合中 userId为100的数据,更新字段 mobile、job 两个字段
*/
const res = await User.findOneAndUpdate({ userId:"100" }, { mobile:123, job:456 });

findOneAndUpdate 使用场景—-自增ID

新建数据模型 counterSchema


/**
*维护用户ID自增长表
*/
const mongoose = require("mongoose")
const userSchema =  mongoose.Schema({
 _id:String,
 sequence_value:Number
})
module.exports = mongoose.model("counter",userSchema,"counters")
/**接受三个参数
* 模型名称
* 模型
* 集合名称
*/

使用

const doc = await Counter.findOneAndUpdate({ _id: 'userId' }, { $inc: { sequence_value: 1 } }, { new: true })
/*
* 第一个参数为要自增的字段。{ _id: 'userId' }
* 第二个参数为 $inc修饰符 sequence_value 字段加一
* 第三个参数为 new:true 表示返回更新后的对象,为false表示更新前的对象,默认是false
*/

查找相关的技巧

/*
*   这里的User是定义好的数据模型
*   使用 $or 修饰符 {$or:[{查找的key:查找的value,key:value}]},"表示返回的字段1 返回的字段2 返回的字段3"
*/
const User = require('./../models/userSchema')
const res = await User.findOne({$or:[{userName:"admin",userEmail:"admin@qq.com"}]},"_id userName userEmail")

创建或插入文档

/*
* 这里的User是定义好的数据模型
*/
const User = require('./../models/userSchema')
const user = new User({
       userId:doc.sequence_value,
       userName,
       userPwd:md5('admin'),
       userEmail,
       role:1,// 默认为普通用户
       roleList,
       job,
       state,
       deptId,
       mobile
})
user.save()

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇