一、安装
去官网下载msi安装包,解压。可以设置环境变量也可不设,建议设置。设置classpath后可以在CMD命令行任意目录使用mongodb命令。
二、启动
E:\green_software\mongodb-32-2.4.8\bin\mongod -dbpath datapath.前半部分是你的解压路径,datapath是数据库路径即数据的存储位置。建议写个启动bat文件,每次启动时只需单击该bat即可。
E:\green_software\mongodb-32-2.4.8\bin\mongo.exe使用mongo,进行CURD操作。
三、简单的CURD
A、创建database
use school //此时数据库只是存在于内存中,退出后该数据库小时,只有创建集合后才存在
B、创建集合、文档
db.class.insert({name:"computer",student_count:58})
C、查看database\集合
show dbs;show collections
D、CURD
1、
#按条件删除
#insertOrUpdate True表示记录不存在是则插入一条心的记录
> db.persons.update({name:"klov001"},{age:225},true)
#普通批量更新
> db.persons.find()
{ "_id" : ObjectId("52b0775985787a014133e945"), "age" : 22 }
{ "_id" : ObjectId("52b07835df74f724c29b7363"), "age" : 225 }
{ "_id" : ObjectId("52b0791885787a014133e946"), "name" : "22" }
{ "_id" : ObjectId("52b0791b85787a014133e947"), "name" : "22" }
{ "_id" : ObjectId("52b0791c85787a014133e948"), "name" : "22" }
> db.persons.update({name:"22"},{name:"33"},false,true)
multi update only works with $ operators
必须是
> db.persons.update({name:"22"},{$set:{name:"33"}},false,true)
>db.persons.remove({name:9})、db.persons.remove()
以上删除并不会删除集合本身和索引,可以查看看索引:
> db.system.indexes.find()
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "foobar.persons", "name" : "_id_" }
大数据删除时使用drop表然后重新建立索引
2、#查找
db.persons.find()/findOne()
#插入一条ID已存在的记录,报错:
> db.persons.insert({_id:"001",name:"Klov1"})
E11000 duplicate key error index: foobar.persons.$_id_ dup key: { : "001" }
#如果就想插入ID已存在,则使用save方法
> db.persons.save({_id:"001",name:"Klov1"})
#强硬式替换
#db.persons.update({查询器},{修改器})
> db.persons.find()
{ "_id" : ObjectId("52b0775985787a014133e945"), "name" : "klov", "age" : 22, "co
mpany" : "fengzi" }
> db.persons.update({name:"klov"},{age:22})
> db.persons.find()
{ "_id" : ObjectId("52b0775985787a014133e945"), "age" : 22 }
>
以上update是删除条件记录,然后插入一条新的记录。若只是更新该记录,使用$set:{}更新器
以上删除并不会删除集合本身和索引,可以查看看索引:
> db.system.indexes.find()
{ "v" : 1, "key" : { "_id" : 1 }, "ns" : "foobar.persons", "name" : "_id_" }
大数据删除时使用drop表然后重新建立索引
2、#查找
db.persons.find()/findOne()
#插入一条ID已存在的记录,报错:
> db.persons.insert({_id:"001",name:"Klov1"})
E11000 duplicate key error index: foobar.persons.$_id_ dup key: { : "001" }
#如果就想插入ID已存在,则使用save方法
> db.persons.save({_id:"001",name:"Klov1"})
#强硬式替换
#db.persons.update({查询器},{修改器})
> db.persons.find()
{ "_id" : ObjectId("52b0775985787a014133e945"), "name" : "klov", "age" : 22, "co
mpany" : "fengzi" }
> db.persons.update({name:"klov"},{age:22})
> db.persons.find()
{ "_id" : ObjectId("52b0775985787a014133e945"), "age" : 22 }
>
以上update是删除条件记录,然后插入一条新的记录。若只是更新该记录,使用$set:{}更新器
#insertOrUpdate True表示记录不存在是则插入一条心的记录
> db.persons.update({name:"klov001"},{age:225},true)
#普通批量更新
> db.persons.find()
{ "_id" : ObjectId("52b0775985787a014133e945"), "age" : 22 }
{ "_id" : ObjectId("52b07835df74f724c29b7363"), "age" : 225 }
{ "_id" : ObjectId("52b0791885787a014133e946"), "name" : "22" }
{ "_id" : ObjectId("52b0791b85787a014133e947"), "name" : "22" }
{ "_id" : ObjectId("52b0791c85787a014133e948"), "name" : "22" }
> db.persons.update({name:"22"},{name:"33"},false,true)
multi update only works with $ operators
必须是
> db.persons.update({name:"22"},{$set:{name:"33"}},false,true)
第三个参数 false 表示只更新符合条件的记录;第四个参数 true 表示批量更新所有符合条件的记录,默认是false,只更新第一
跳符合条件的记录。