mongodb linux 使用教程,手把手 linux下 MongoDB 的使用方法(一)

1、 创建数据库

语法

use DATABASE_NAME

创建一个 user_data 的数据库,使用 db 命令查看

> use user_data

switched to db user_data

> db

user_data

>

查看所有数据库使用show dbs

> show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

test 0.000GB

可以看到,刚创建的数据库 user_data 并不在数据库的列表中, 要显示它,我们需要向 user_data 数据库插入一些数据。

> db.user_data.insert({"name":"关注公众号,小罗技术笔记,专注于开发技术的研究与知识分享"})

WriteResult({ "nInserted" : 1 })

> show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

user_data 0.000GB

test 0.000GB

MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。

2、 删除数据库

语法

db.dropDatabase()

以下操作会把user_data数据删除

查看所有数据库

> show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

user_data 0.000GB

test 0.000GB

切换到user_data数据库

> use user_data

switched to db user_data

使用db.dropDatabase() 删除数据库

> db.dropDatabase()

{ "dropped" : "user_data", "ok" : 1 }

看到已经删除了

> show dbs

admin 0.000GB

config 0.000GB

local 0.000GB

test 0.000GB

3、插入文档类型数据

使用 insert() 或 save() 方法向集合中插入文档,语法如下:

db.COLLECTION_NAME.insert(document)

以下文档可以存储在 MongoDB 的 user_data 数据库 的 col 集合中:

切换到user_data数据库

> use user_data

switched to db user_data

db.col.insert({title: 'MongoDB 教程',

description: 'MongoDB 是一个 Nosql 数据库',

by: '小罗技术笔记-专注于开发技术的研究与知识分享',

url: 'http://www.yuwowugua.com',

tags: ['mongodb', 'database', 'NoSQL'],

likes: 100

})

> db.col.find()

以上实例中 col 是我们的集合名,如果该集合不在该数据库中, MongoDB 会自动创建该集合并插入文档。

查看已插入文档:

{

"_id": ObjectId("5a69eb32ec3046ee8ae54dbb"),

"title": "MongoDB 教程",

"description": "MongoDB 是一个 Nosql 数据库",

"by": "小罗技术笔记-专注于开发技术的研究与知识分享",

"url": "http://www.yuwowugua.com",

"tags": ["mongodb", "database", "NoSQL"],

"likes": 100

}

也可以将数据定义为一个变量,如下所示:

document=({title: 'MongoDB 教程',

description: 'MongoDB 是一个 Nosql 数据库',

by: '小罗技术笔记-专注于开发技术的研究与知识分享',

url: 'http://www.yuwowugua.com',

tags: ['mongodb', 'database', 'NoSQL'],

likes: 100

})

执行后显示结果如下:

{

"title" : "MongoDB 教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "小罗技术笔记-专注于开发技术的研究与知识分享",

"url" : "http://www.yuwowugua.com",

"tags" : [

"mongodb",

"database",

"NoSQL"

],

"likes" : 100

}

执行插入操作:

> db.col.insert(document)

WriteResult({ "nInserted" : 1 })

插入文档你也可以使用 db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。

3.2 版本后还有以下几种语法可用于插入文档:

db.collection.insertOne():向指定集合中插入一条文档数据。

db.collection.insertMany():向指定集合中插入多条文档数据。

插入单条数据

> var document = db.collection.insertOne({"title": "小罗技术笔记"})

> document

{

"acknowledged" : true,

"insertedId" : ObjectId("5a69f0dfec3046ee8ae54dbe")

}

> db.collection.find()

{ "_id" : ObjectId("5a69f0dfec3046ee8ae54dbe"), "title" : "小罗技术笔记" }

插入多条数据

> var res = db.collection.insertMany([{"title": "小罗技术笔记"}, {'description': "关注公众号,小罗技术笔记,专注于开发技术的研究与知识分享"}])

> res

{

"acknowledged" : true,

"insertedIds" : [

ObjectId("5a69f188ec3046ee8ae54dbf"),

ObjectId("5a69f188ec3046ee8ae54dc0")

]

}

> db.collection.find()

{ "_id" : ObjectId("5a69f0dfec3046ee8ae54dbe"), "title" : "小罗技术笔记" }

{ "_id" : ObjectId("5a69f188ec3046ee8ae54dc0"), "description" : "关注公众号,小罗技术笔记,专注于开发技术的研究与知识分享" }

4、 删除文档

remove()函数是用来移除集合中的数据。

数据更新可以使用update()函数。在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。

remove() 方法已经过时了,现在官方推荐使用 deleteOne() 和 deleteMany() 方法。

如删除集合下全部文档:

> db.col.deleteMany({})

{ "acknowledged" : true, "deletedCount" : 2 }

> db.col.find()

删除 title 等于 “小罗技术笔记” 的全部文档:

> db.collection.deleteMany({ title : "小罗技术笔记"})

{ "acknowledged" : true, "deletedCount" : 2 }

>

> db.collection.find()

{ "_id" : ObjectId("5a69f188ec3046ee8ae54dc0"), "description" : "关注公众号,小罗技术笔记,专注于开发技术的研究与知识分享" }

删除 weixin 等于 “小罗技术笔记” 的一个文档:

> db.col.insert({weixin:"小罗技术笔记"})

WriteResult({ "nInserted" : 1 })

> db.col.find()

{ "_id" : ObjectId("5a69f5a0ec3046ee8ae54dc1"), "weixin" : "小罗技术笔记" }

> db.col.deleteOne({weixin:"小罗技术笔记"})

{ "acknowledged" : true, "deletedCount" : 1 }

> db.col.find()

5、 查询文档

查询文档使用 find() 方法。

find() 方法以非结构化的方式来显示所有文档。

查询数据的语法格式如下:

> db.collection.find(query, projection)

query :可选,使用查询操作符指定查询条件

projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。

pretty() 方法以格式化的方式来显示所有文档。

db.col.insert({title: 'MongoDB 教程',

description: 'MongoDB 是一个 Nosql 数据库',

by: '小罗技术笔记-专注于开发技术的研究与知识分享',

url: 'http://www.yuwowugua.com',

tags: ['mongodb', 'database', 'NoSQL'],

likes: 100

})

> db.col.find().pretty()

{

"_id" : ObjectId("5a69f93598891b4abe9cc8cb"),

"title" : "MongoDB 教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "小罗技术笔记-专注于开发技术的研究与知识分享",

"url" : "http://www.yuwowugua.com",

"tags" : [

"mongodb",

"database",

"NoSQL"

],

"likes" : 100

}

与 RDBMS Where 语句比较

1460000021402359

5.1 AND 条件

MongoDB 的 find() 方法可以传入多个键(key),每个键(key)以逗号隔开,即常规 SQL 的 AND 条件。

语法格式如下:

> db.col.find({key1:value1, key2:value2}).pretty()

以下实例通过 by 和 title 键来查询 数据

> db.col.find({"by":"小罗技术笔记-专注于开发技术的研究与知识分享", "title":"MongoDB 教程"}).pretty()

{

"_id" : ObjectId("5a69f93598891b4abe9cc8cb"),

"title" : "MongoDB 教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "小罗技术笔记-专注于开发技术的研究与知识分享",

"url" : "http://www.yuwowugua.com",

"tags" : [

"mongodb",

"database",

"NoSQL"

],

"likes" : 100

}

以上实例中类似于 WHERE 语句:WHERE by=’小罗技术笔记-专注于开发技术的研究与知识分享’ AND title=’MongoDB 教程’

5.2 OR 条件

MongoDB OR 条件语句使用了关键字 $or,语法格式如下:

>db.col.find(

{

$or: [

{key1: value1}, {key2:value2}

]

}

).pretty

以下实例中,我们演示了查询键 by 值为 “小罗技术笔记-专注于开发技术的研究与知识分享” 或键 title 值为 MongoDB 教程 的文档。

> db.col.find({$or:[{"by":"小罗技术笔记-专注于开发技术的研究与知识分享"},{"title": "MongoDB 教程"}]}).pretty()

{

"_id" : ObjectId("5a69f93598891b4abe9cc8cb"),

"title" : "MongoDB 教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "小罗技术笔记-专注于开发技术的研究与知识分享",

"url" : "http://www.yuwowugua.com",

"tags" : [

"mongodb",

"database",

"NoSQL"

],

"likes" : 100

}

5.3 AND 和 OR 联合使用

以下实例演示了 AND 和 OR 联合使用,类似常规 SQL 语句为: 'where likes>50 AND (by = '小罗技术笔记-专注于开发技术的研究与知识分享' OR title = 'MongoDB 教程')'

> db.col.find({"likes": {$gt:50}, $or: [{"by": "小罗技术笔记-专注于开发技术的研究与知识分享"},{"title": "MongoDB 教程"}]}).pretty()

{

"_id" : ObjectId("5a69f93598891b4abe9cc8cb"),

"title" : "MongoDB 教程",

"description" : "MongoDB 是一个 Nosql 数据库",

"by" : "小罗技术笔记-专注于开发技术的研究与知识分享",

"url" : "http://www.yuwowugua.com",

"tags" : [

"mongodb",

"database",

"NoSQL"

],

"likes" : 100

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值