mongodb相关操作命令集合
liunx下mongodb
命令相关:
状态 service mongodb status
启动进入数据库 mongo
创建数据库 use test
查看所有数据库 show dbs
查看某库下集合 show tables
mongodb-删除相关
remove()
参数说明:
query :(可选)删除的文档的条件。
justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值 false,则删除所有匹配条件的文档。
writeConcern :(可选)抛出异常的级别。
db.col.remove({'title':'相关值'})
db.collection_name.remove(DELETION_CRITERIA,1)
db.col.remove({})
db.dropDatabase()
db.col.drop()
插入文档
db.数据库.insert({字段:"值",字段1:"值1"})
document = ({'key'=>'值','key1'=>'值1'})
db.mycol.insert(document)
3.2 版本后还有以下几种语法可用于插入文档:
db.collection.insertOne():向指定集合中插入一条文档数据
db.collection.insertMany():向指定集合中插入多条文档数据
查看文档
db.mycol.find(document)
db.数据库.find()
db.数据库.find().pretty()
db.mycol.find().pretty(by="值")
db.mycol.find({ titile: {$regex: /^查询得模糊值/ } })
更新文档
MongoDB 使用 update() 和 save() 方法来更新集合中的文档
语法:db.collection.update()
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
#Update语法:
db.col.update({'title':'数据1'},{$set:{'title':'改变title'}})
#Save()
db.col.save({"_id":'值'})
#更新一条
db.col.updateOne({"name":"abc"},{$set:{"age":"28"}})
高级复杂查询
db.col.find().count() #统计集合条数
db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
db.col.find({$or:[{"by":"菜鸟教程"},{"name": "测试"}]}).pretty().limit().count()
db.col.find({"likes": {$gt:50}, $or: [{"by": "菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()
符号集合:Match Group Project Sort
$match: 这个符号用于对数据进行筛选,类似于SQL中的WHERE语句。
match后面可以跟一个查询条件,只有符合条件的文档才会被保留。
例如: match后面可以跟一个查询条件,只有符合条件的文档才会被保留。$match: { platform: “android” }
$eq:表示等于。
$ne:表示不等于。
$gt:表示大于。
$gte:表示大于等于。
$lt:表示小于。
$lte:表示小于等于。
$in:表示匹配多个值中的任意一个。
$nin:表示不匹配多个值中的任意一个。
$and: 逻辑与 (表示多个条件同时满足。)
$or: 逻辑或 (表示多个条件中满足任意一个即可。)
$not: 逻辑非
$regex: 正则表达式
$project: 这个符号用于对文档中的字段进行投影操作,类似于 S Q L 中的 S E L E C T 语句。
类似于SQL中的SELECT语句。可以选择保留或者去除某些字段,也可以添加一些新的计算字段。
例如:project: { platform: 1,
version: 1,
isNew: {
$cond: {
if: { gte : [ " gte: [ "gte:["createdAt", ISODate(“2022-01-01”) ] },
then: true, else: false
}
}
}
$add:表示加法。
$subtract:表示减法。
$multiply:表示乘法。
$divide:表示除法。
$mod:表示取模。
$concat: 连接字符串
$substr: 截取字符串
$toUpper: 转换为大写
$toLower: 转换为小写
$dateToString: 将日期转换为字符串
$isArray: 判断是否为数组
$size: 获取数组长度
$cond:表示条件语句,根据条件返回不同的结果。
$ifNull:表示如果字段值为空,则返回指定的默认值。
$arrayElemAt:表示返回数组中指定索引位置的元素。
$group: 这个符号用于分组聚合操作,类似于SQL中的GROUP BY语句。
例如:group: { _id: “$platform”,
count: { $sum: 1 }
}
$sum:表示求和。
$avg:表示求平均值。
$min:表示求最小值。
$max:表示求最大值。
$push:表示将字段值添加到一个数组中。
$addToSet:表示将字段值添加到一个集合中,集合中的元素不重复。
$first:表示返回分组中第一个文档的指定字段值。
$last:表示返回分组中最后一个文档的指定字段值。
$count: 统计数量
$Sort:
1:表示升序。
-1:表示降序。
$asc: 升序排列
$desc: 降序排列
$limit:表示限制查询结果返回的文档数量
$skip:表示跳过指定数量的文档,内部没有其他符号。
$unwind:表示将一个包含数组的字段拆分成多个文档进行操作,
$path: 拆分数组字段的路径
$preserveNullAndEmptyArrays: 是否保留空数组或不存在的字段
$lookup:表示在另一个集合中查找符合条件的文档并返回,通常和 $unwind 结合使用。
$from: 要查询的集合
$localField: 当前集合中的字段
$foreignField: 要查询集合中的字段
$as: 输出结果集中的字段名