本章主要学习MongoDB命令,在开始正题之前,我们需要做些准备工作,创建数据库和集合。
1.使用use命令进入数据库(数据库无需创建,直接进入)
use School
2.创建一个集合
db.createCollections("Student")
当然,我们也无需使用以上语句创建集合,直接插入一条数据也可创建集合,如:
db.Student.insert({"Name":"Neal","Age":24})
好!接下来开始正题!
增(insert)
要插入数据到 MongoDB 集合,需要使用 MongoDB 的 insert() 方法。
insert() 命令的基本语法如下:
db.COLLECTION_NAME.insert(document)
示例:
> db.Student.insert({"Name":"Neal","Age":24})
WriteResult({ "nInserted" : 1 })
查(find)
要从MongoDB 查询集合数据,需要使用MongoDB 的 find() 方法。
db.COLLECTION_NAME.find()
示例:
> db.Student.find()
{ "_id" : ObjectId("5561c446ea24f9eb53a33536"), "Name" : "Neal", "Age" : 24 }
{ "_id" : ObjectId("5561c7e2ea24f9eb53a33537"), "Name" : "Harry", "Age" : 23, "Gender" : "Male" }
使用find()可以查询当前集合所有的文档,加入查询参数可以查询某些特定条件的数据,如查询名字是Harry的学生:
> db.Student.find({"Name":"Harry"})
{ "_id" : ObjectId("5561c7e2ea24f9eb53a33537"), "Name" : "Harry", "Age" : 23, "Gender" : "Male" }
使用findOne()可以查询第一条数据,同理加入查询参数可以查询符合特定条件的第一条数据。
ObjectId
想必大家看到查询出来的数据中添加了我们在插入过程中并没有指定的_Id字段。
是这样的,插入文档时,如果我们不指定_id参数,MongoDB为文档分配一个独特的ObjectId。
_id是12个字节的十六进制数,唯一标识一个集合中的每个文档。12个字节被划分如下:
_id: ObjectId(4 bytes timestamp, 3 bytes machine id, 2 bytes process id, 3 bytes incrementer)
改(Update)
MongoDB的 update() 方法用于更新文档的集合。
db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
示例:
通过下面语句可以将Name为Neal的学生Age改为20。
> db.Student.update({"Name":"Neal"},{$set:{"Age":20}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.Student.find({"Name":"Neal"})
{ "_id" : ObjectId("5561c446ea24f9eb53a33536"), "Name" : "Neal", "Age" : 20 }
删(Remove)
MongoDB的 remove() 方法用于从集合中删除文档。remove() 方法接受两个参数。第一个是删除criteria(条件) ,第二是justOne标志:
- deletion criteria :(可选)删除条件,根据文件将被删除。
语法:
db.COLLECTION_NAME.remove(DELLETION_CRITTERIA)
- justOne : (可选)如果设置为true或1,然后只删除一个文件。
语法:
db.COLLECTION_NAME.remove(DELETION_CRITERIA,1)
示例:
> db.Student.remove({"Name":"Neal"})
WriteResult({ "nRemoved" : 1 })
> db.Student.find({"Name":"Neal"})
>
注意:使用db.Student.remove()会删除Student集合中的所有数据,请谨慎使用。