一、数据库和表操作
-
show bds 查看数据库
-
use test 切换数据库
-
db.dropDatabase() 删除当前数据库
-
use test 直接切换到数据库,mongo会在适当的时候自动创建数据库
-
db.mydb.drop()删除表
二、增:插入文档(集合)
db.mydb.insert() 创建表并插入数据,数据格式为json,
如果json对象中不包含_id则会自动创建一个全局唯一的_id,支持插入多条数据
db.mydb.insert({x:1}) 或 db.mydb.insert({x:1,_id:1})
for(i = 3; i < 100; i ++)db.mydb.insert({x:i}) 使用js语法插入100条数据
db.mydb.insert({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
- 也可以定义为一个变量document
document=({title: 'MongoDB 教程',
description: 'MongoDB 是一个 Nosql 数据库',
by: '菜鸟教程',
url: 'http://www.runoob.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
});
db.mydb.insert(document)
三、删:删除文档(集合)
删除集合下全部文档: db.mydb.deleteMany({})
删除 status 等于 A 的全部文档: db.mydb.deleteOne( { status: "D" } )
删除 status 等于 D 的一个文档: db.mydb.deleteOne( { status: "D" } )
四、改:更新文档(集合)
db.collection.updateOne() 向指定集合更新单个文档,[name是abc的age设置为28]
db.mydb.updateOne({"name":"abc"},{$set:{"age":"28"}})
db.mydb.find
db.collection.updateMany() 向指定集合更新多个文档,[age大于10的status设置为xyz]
db.test_collection.updateMany({"age":{$gt:"10"}},{$set:{"status":"xyz"}})
db.test_collection.insert({x:1,y:2})
db.test_collection.update({x:1},{z:3})更新x为1的数据,覆盖所有其他数据,只剩下z:3更新后为{z:3}
db.test_collection.update({x:1},{$set:{z:3}})更新x为1的数据,增加或者修改z:3,其他字段保持不变
db.test_collection.update({y:100},{y:999},true)第三个参数表示如果y:100的数据不存在则创建一条{y:999}的 数据
db.test_collection.update({x:10},{$set:{z:1200}}, false, true) 第三个参数false表示不存在也不创建,第四个参数true表示当有多条符合更新要求的数据记录时会批量更新,此时必须使用$set操作符
五、查:查询文档(集合)
db.mydb.find()
通过 by 和 title 键来查询 Mongodb 中 hello 的数据
db.col.find({"by":"Mongodb", "title":"hello"}).pretty()
show collections 查看创建的表
db.test_collections.find() 默认查询所有的记录,可以为空。
db.test_collections.find({x:1}) 查询符合x:1的记录
db.test_collections.find().count() 查询满足条件的数目
db.test_collections.find().skip(3).limit(2).sort({x:1}) 忽略前三行,取两条数据,按照x排序
db.test_collections.find().pretty() pretty() 方法以格式化的方式来显示所有文档,更好看。
查询多个条件用逗号隔开
age大于50的,db.col.find({"age":{$gt:50}}).pretty()