mongo
mongodb 中文网
mongodb 官网
记录 mongo 学习笔记
以下例子所操作的表结构如下
db.user.findOne();
{ _id: ObjectId("61e7afeeb8868c7624273ba7"),
name: 'carl',
age: 22,
work: 'code man',
description: 'handsome man and superman'
}
操作符
- $exists
// 查询 status 存在的数据
db.getCollection('user').find({"status": {"$exists": true}})
// 查询 status 不存在的数据
db.getCollection('user').find({"status": {"$exists": false}})
- $in
// 查询 name 是否在这个数组 ["carl", "kira"] 中
db.getCollection('user').find({"name": {"$in": ["carl", "kira"]}})
- $lt $lte $gt $gte
四个分别代表 <、<=、>、>=,有 e 的代表有等于
// 查询姓名是 carl,年龄是大于等于 18、小于 22 的数据
db.user.find({"name": "carl", "age": {"$gte": 18, "$lt": 22}})
- $ne 不等于
// 查询姓名不为 carl 的所有数据
db.getCollection('user').find({"name": {"$ne": "carl"}})
- $set 修改
// 把 name 是 carl 的用户 age 改成 21
db.getCollection('user').update({"name": "carl"}, {"$set": {"age": 21}})
聚合查询 aggregate
管道符
- $match
过滤操作,类似于mysql
的where
db.getCollection('user').aggregate([{"$match": {"status": "online"}}])
update
db.collection.update(<query>, <update>, <options>)
- query 筛选条件
- update 更新内容
- 其他操作
options
- multi: boolean,默认是 false,如果为 true 则根据条件更新多条