mongodb杂记

面向文档的数据库 适合海量存储 查询
文档的数据结构和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",
                }
        ]}




  

你可能感兴趣的:(mongodb杂记)