目录
MongoDB 数据库常用命令
1. Help查看命令提示
help
db.help()
db.test.help()
db.test.find().help()
2. 创建/切换数据库
> use music
switched to db music
3. 查询数据库
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
4. 查看当前使用的数据库
> db
music
# 或
> db.getName()
music
5. 显示当前DB状态
> db.stats()
{
"db" : "music",
"collections" : 0,
"views" : 0,
"objects" : 0,
"avgObjSize" : 0,
"dataSize" : 0,
"storageSize" : 0,
"totalSize" : 0,
"indexes" : 0,
"indexSize" : 0,
"scaleFactor" : 1,
"fileSize" : 0,
"fsUsedSize" : 0,
"fsTotalSize" : 0,
"ok" : 1
}
6. 查看当前DB版本
db.version()
7. 查看当前DB的链接机器地址
> db.getMongo()
connection to 127.0.0.1:27017
8. 删除数据库
> db.dropDatabase()
{
"ok" : 1 }
Collection集合操作
1. 创建一个集合
db.createCollection("singer", {
size: 20, capped: true, max: 100});
2. 判断集合是否为定容量
> db.singer.isCapped()
true
3. 得到指定名称的集合
db.getCollection("account")
MongoDB 删除集合
db.collection.drop()
4. 得到当前db的所有集合
> db.getCollectionNames()
[ "album", "singer" ]
5. 显示当前db所有集合的状态
db.printCollectionStats()
文档操作
查询所有记录
> db.singer.find()
{
"_id" : ObjectId("622a15791181c7388318c06f"), "name" : "张三", "age" : 25 }
{
"_id" : ObjectId("622a158d1181c7388318c071"), "name" : "zhangsan", "age" : 25, "sex" : true }
{
"_id" : ObjectId("622a15961181c7388318c072"), "name" : "zhangsan", "age" : 25, "sex" : true }
插入文档
save
> db.singer.save({
name: 'zhangsan', age: 25, sex: '男'})
WriteResult({
"nInserted" : 1 })
> db.singer.find()
{
"_id" : ObjectId("622a158d1181c7388318c071"), "name" : "zhangsan", "age" : 25, "sex" : '男' }
insert
> db.singer.insert([{
name: '老王', age: 40}, {
name: '老李', age: 30}])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
> db.singer.find()
{
"_id" : ObjectId("622a17d61181c7388318c077"), "name" : "老王", "age" : 40 }
{
"_id" : ObjectId("622a17d61181c7388318c078"), "name" : "老李", "age" : 30 }
insertOne
> db.singer.insertOne({
name: '李四'})
{
"acknowledged" : true,
"insertedId" : ObjectId("622a16d51181c7388318c075")
}
> db.singer.find()
{
"_id" : ObjectId("622a16bb1181c7388318c074"), "name" : "李四" }
insertMany
> db.singer.insertMany([{
name: '小王', age: 20}, {
name: '小李', age: 20}])
{
"acknowledged" : true,
"insertedIds" : [
ObjectId("622a18c1e53b1497cfd6d1a3"),
ObjectId("622a18c1e53b1497cfd6d1a4")
]
}
> db.singer.find()
{
"_id" : ObjectId("622a18c1e53b1497cfd6d1a3"), "name" : "小王", "age" : 20 }
{
"_id" : ObjectId("622a18c1e53b1497cfd6d1a4"), "name" : "小李", "age" : 20 }
修改文档 update()
update() 方法用于更新已存在的文档。语法格式如下:
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如 , , ,inc…)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
$set 修改
db.singer.update({
age: 25}, {
$set: {
name: 'changeName'}}, false, true);
# 相当于:
update singer set name = 'changeName' where age = 25;
$inc 增加
db.singer.update({
name: 'Lisi'}, {
$inc: {
age: 50}}, false, true);
# 相当于:
update singer set age = age + 50 where name = 'Lisi';
db.singer.update({
name: 'Lisi'}, {
$inc: {
age: 50}, $set: {
name: 'hoho'}}, false, true);
# 相当于:
update singer set age = age + 50, name = 'hoho' where name = 'Lisi';
删除文档
db.singer.remove({
age: 132});