使用MongoDB基本操作
1.基本操作
选择和创建数据库的语法格式:
use 数据库名称
查看有权限查看的所有的数据库命令
show dbs
或
show databases
admin : 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。
local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合
config : 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。
集合的操作
新增:
db.createCollection(name)
隐式的方式
db.test_d.insert({u_id:1,goods_id:1});
集合的查询
show tables;
集合的命名规范:
集合名不能是空字符串 ""。
集合名不能含有 \0字符(空字符),这个字符表示集合名的结尾。
集合名不能以 "system."开头,这是为系统集合保留的前缀。
用户创建的集合名字不能含有保留字符。另外千万不要在名字里出现$。
文档的插入
db.test.insert("")
批量插入
db.comment.insertMany([{"id" : 110, "name" : "lijin", "createdatetime" : new Date(), "content" : "今天下雨,天气不好"},{"id" : 110, "name" : "lijin", "createdatetime" : new Date(), "content" : "今天下雨,天气不好"},{"id" : 110, "name" : "lijin", "createdatetime" : new Date(), "content" : "今天下雨,天气不好"},{"id" : 110, "name" : "lijin", "createdatetime" : new Date(), "content" : "今天下雨,天气不好"}
]);
文档的基本查询
查询数据的语法格式如下:
db.collection.find(<query>, [projection])
文档的更新
db.collection.update(query, update, options)
文档的删除
db.collection.remove(条件)
db.collection.remove({_id:"1"})
db.comment.remove({}) 删除全部
2.复杂操作
统计查询
db.collection.count(query, options)
db.note.count(); --统计所有记录
db.note.count({name:"king"}); --统计name为king的记录条数
分页列表查询
db.COLLECTION_NAME.find().limit(NUMBER).skip(NUMBER)
limit()方法来读取指定数量的数据,使用skip()方法来跳过指定数量的数据
db.note.find().limit(3)
db.note.find().skip(3)
分页查询:需求:每页5个
db.note.find().skip(0).limit(5) //第一页
db.note.find().skip(5).limit(5) //第二页
db.note.find().skip(10).limit(5) //第三页
排序查询
db.集合名称.find().sort(排序方式) 1升序、-1降序
db.note.find().sort({name:-1,id:-1})
skip(), limit(), sort()三个放在一起执行的时候,执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit(),和命令编写顺序无关
db.note.find().skip(0).limit(5).sort({name:-1,id:-1})
正则表达式
db.集合.find({字段:/正则表达式/}) 正则表达式是 js的语法
db.note.find({content:/下雨/}) content包含'下雨'的
db.note.find({name:/^k/}) name是k开头的
比较查询
db.集合名称.find({ "field" : { $gt: value }}) // 大于: field > value
db.集合名称.find({ "field" : { $lt: value }}) // 小于: field < value
db.集合名称.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.集合名称.find({ "field" : { $lte: value }}) // 小于等于: field <= value
db.集合名称.find({ "field" : { $ne: value }}) // 不等于: field != value
db.note.find({id:{$gt:252}})
db.note.find({$and:[{id:{$gt:252}},{id:{$lt:256}}]})
条件连接查询
$and:[ { },{ },{ } ]
包含查询
db.note.find({id:{$in: [252,254]}})