您的位置:首页 > 数据库 > Mongodb

mongodb杂记

2016-03-07 13:45 411 查看
面向文档的数据库 适合海量存储 查询

文档的数据结构和JSON基本一样。

所有存储在集合中的数据都是BSON格式。

BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON。

mongod --dbpath /data/db --logpath /data/log/log.log --fork

1.创建和使用数据库

use server

2.查看所有数据库

show dbs

3.插入文档

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

db.COLLECTION_NAME.insert(document)

db.col.save(document) 命令。如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据

use server

db.player.save({account:1})

db.player.insert({account:1})

db.player.find()

student={account:3}

db.player.insert(student)

4.更新文档

MongoDB 使用 update() 和 save() 方法来更新集合中的文档

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 :可选,抛出异常的级别。

实例

db.account.update({"plauer":{$gt:1}},{$set:{player:10000}})

5。删除文档

db.collection.remove(

<query>,

{

justOne: <boolean>,

writeConcern: <document>

}

)

参数说明:

query :(可选)删除的文档的条件。

justOne : (可选)如果设为 true 或 1,则只删除一个文档。

writeConcern :(可选)抛出异常的级别。

db.collection.remove() 删除该集合下所有文档

db.account.remove({plauer:{$exists:true}})

6.查询文档

db.COLLECTION_NAME.find()

db.col.find().pretty()

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

MongoDB 与 RDBMS Where 语句比较

如果你熟悉常规的 SQL 数据,通过下表可以更好的理解 MongoDB 的条件语句查询:

操作 格式 范例
RDBMS中的类似语句

等于 {<key>:<value>}
db.col.find({"by":"菜鸟教程"}).pretty() where by = '菜鸟教程'

小于 {<key>:{$lt:<value>}}
db.col.find({"likes":{$lt:50}}).pretty()
where likes < 50

小于或等于 {<key>:{$lte:<value>}}
db.col.find({"likes":{$lte:50}}).pretty()
where likes <= 50

大于 {<key>:{$gt:<value>}}
db.col.find({"likes":{$gt:50}}).pretty()
where likes > 50

大于或等于 {<key>:{$gte:<value>}}
db.col.find({"likes":{$gte:50}}).pretty()
where likes >= 50

不等于 {<key>:{$ne:<value>}}
db.col.find({"likes":{$ne:50}}).pretty()
where likes != 50

(>) 大于 - $gt

(<) 小于 - $lt

(>=) 大于等于 - $gte

(<= ) 小于等于 - $lte

MongoDB AND 条件

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

语法格式如下:

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

db.player.find({"age",{$gt,20, $lt, 30}})

MongoDB OR 条件

db.col.find({$or:[{"by":"菜鸟教程"},{"title": "MongoDB 教程"}]}).pretty()

7.创建索引

background Boolean 建索引过程会阻塞其它数据库操作,background可指定以后台方式创建索引,即增加 "background" 可选参数。 "background" 默认值为false。

unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false.

name string 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。

dropDups Boolean 在建立唯一索引时是否删除重复记录,指定 true 创建唯一索引。默认值为 false.

sparse Boolean 对文档中不存在的字段数据不启用索引;这个参数需要特别注意,如果设置为true的话,在索引字段中不会查询出不包含对应字段的文档.。默认值为 false.

expireAfterSeconds integer 指定一个以秒为单位的数值,完成 TTL设定,设定集合的生存时间。

v index version 索引的版本号。默认的索引版本取决于mongod创建索引时运行的版本。

weights document 索引权重值,数值在 1 到 99,999 之间,表示该索引相对于其他索引字段的得分权重。

default_language string 对于文本索引,该参数决定了停用词及词干和词器的规则的列表。 默认为英语

language_override string 对于文本索引,该参数指定了包含在文档中的字段名,语言覆盖默认的language,默认值为 language.

db.col.ensureIndex({"title":1},{background: true})

mysql <->PRIMARY KEY

杂项

db.player.find().sort({KEY:1})

1 为升序排列,而-1是用于降序排列。

删除数据库

db.dropDatabase()

./mongod --dbpath /data/db --logpath /data/db/log/log --fork --replSet rs --port 20000

./mongod --dbpath /data/db --replSet rs --port 20000

./mongod --dbpath /data/db1 --replSet rs --port 20001

./mongod --dbpath /data/db2 --replSet rs --port 20002

"iZ287d0g39rZ:27018"

config = {"_id" : "rs", "members" : [{

"_id" : 0

,

"host" : "localhost:20000",

},

{

"_id" : 1

,

"host" : "localhost:20001",

}

]}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: