数据库操作语句:
1.数据库的创建
mongodb不需要刻意去创建一个数据库
use xxx
当你在名为xxx的数据库中添加collections时,此时该数据库就自动生成了
2.数据库的删除
db.dropDatebase() //删除当前的数据库
3.数据库的切换
连接mongodb后,默认是test数据库
show dbs //查看已建立的数
use xxx //切换数据库
collections操作语句:
1.添加collection
和库的相关操作一样,collection不需要刻意去创建,当该collection中添加了文档后,系统便会自动生成该集合。
2.删除collection
show collections //查看当前库中已存在的集合
db.xxx.drop() //删除该集合
文档操作语句:
1.增
db.inventory.insert({})
db.inventory.insertMany([{},{},...])
数据模拟:
db.inventory.insertMany([
{ item: "journal", qty: 25, status: "A", size: { h: 14, w: 21, uom: "cm" }, tags: [ "blank", "red" ] },
{ item: "notebook", qty: 50, status: "A", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank" ] },
{ item: "paper", qty: 10, status: "D", size: { h: 8.5, w: 11, uom: "in" }, tags: [ "red", "blank", "plain" ] },
{ item: "planner", qty: 0, status: "D", size: { h: 22.85, w: 30, uom: "cm" }, tags: [ "blank", "red" ] },
{ item: "postcard", qty: 45, status: "A", size: { h: 10, w: 15.25, uom: "cm" }, tags: [ "blue" ] }
]);
【注意】.insertManny([])为插入多条数据,必须使用方括号将想要输入的json数据括起来
2.删
db.inventory.remove(
<query> //删除文档的条件
{
justone:<boolean>, //true只删除一条,false删除全部符合条件的语句
writeconcern:<document> //抛出异常的级别
}
)
3.改
db.inventory.update(
<query>, //update的查询条件,类似sql update查询内where后面的
/* update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的*/
<update>,
{
/*可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。*/
upsert: <boolean>,
/* 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。*/
multi: <boolean>,
/*可选,抛出异常的级别。*/
writeConcern: <document>
}
)
2.查
以上述inventory集合做示例:
1)
db.inventory.find() //查找所有的文档
db.inventory.find().pretty() //改变索引文档的显示格式
2)
db.inventory.find({qty:45}) //查找qty值为45的文档
3)
db.inventory.find({qty:45},{_id:0}) //查找qty值为45的文档。且不显示_id
4)
db.inventory.find({qty:45},{item:1,size:1}) //查找qty值为45的文档,且只显示item和size
【注意】返回参数的限制条件要么全部true要么全部false(除了_id),否则会报错
5)
db.inventory.find({qty:{$gt:10}}) //查找qty大于10的文档
db.inventory.find({qty:{$gte:10}}) //查找qty大于等于10的文档
db.inventory.find({qty:{$lt:10}}) //查找qty小于等于10的文档
db.inventory.find({qty:{$lte:10}}) //查找qty小于等于10的文档
db.inventory.find({ne:{$lte:10}}) //查找qty不等于10的文档
6)
db.inventory.find({size:{h:8.5,w:11,uom:"in"}}) //查找size为{h:8.5,w:11,uom:"in"}的文档
【注意】若检索条件包含json数据,则要求花括号内容必须与被检索文档花括号内容及顺序必须完全一致。
7)
db.inventory.find({"size.h":10,"size.w":15.25}) //也可以通过 名称.属性 来检索
8)
db.inventory.find({$or:[{"qty":10},{"item":"postcard"}]}) //查找qty为10或者item为postcard的文档