MongoDB_语法命令
可以通过MongoDB shell 来连接MongoDB服务:
./mongo 进入交互
数据库--》集合--》文档
几个文档就组成了集合,可以设置固定大小的集合,集合就会有过期机制,按照插入文档的顺序,最早插入的会先过期
MongoDB区分类型和大小写
不同的文档中的键值是不能重复的
在MongoDB中存储数据的格式是BSON格式,类json的一直json的二进制存储
多个文档组成集合,多个集合就组成了数据库,而MongoDB可以拥有多个数据库
MongoDB shell 语法:
> use runoob 若runoob数据库不存在则创建,若存在则转换到该数据库
> show dbs 显示所有的数据库
> db 显示当前额数据库对象或集合
> db.dropDatabase() 删除当前的数据库
> db.collectionName.drop() 删除集合collectionName
创建与删除集合:
> db.createCollection("ylCollection") 创建一个名字为ylCollection的集合
> show collections 显示当前的数据库下的所有集合
> db.mycoll2.insert({"11":"22"} 也可以不用创建集合,在插入文档的时候,自动的会创建集合
> db.mycoll2.drop() 删除集合
插入文档:
> db.ylCollection.insert({yy:"11",kk:"33",dd:11})
> db.ylCollection.find()
{ "_id" : ObjectId("5bf903ad541157dac013f36d"), "yy" : "11", "kk" : "33", "dd" : 11 }
如果不指定_id 的话,save方法和insert方法是类似的
3.2版本之后可以插入多个文档,insertOne和insertMany方法
更新文档:
{ "_id" : ObjectId("5bf903ad541157dac013f36d"), "yy" : "11", "kk" : "33", "dd" : 11 }
> db.ylCollection.update({yy:"11"},{$set:{yy:22}})
db.collection.update( <query>, 查询条件 <update>, set语句 { upsert: <boolean>, 参数可选,不存在时是否插入,默认是false multi: <boolean>, 参数可选,是否找到多条都更新,默认fasle writeConcern: <document> 参数可选,抛出异常级别 } )
> db.ylCollection.save({_id:ObjectId("5bf903ad541157dac013f36d"),yy:33})
这样会将这个id下的文档所有的都给替换掉了
> db.ylCollection.find().pretty()
{ "_id" : ObjectId("5bf903ad541157dac013f36d"), "yy" : 33 }
删除文档:
>db.ylCollection.deleteMany({yy:33})
查询文档:
> db.ylCollection.find() 查找到当前的数据库下的ylCollection集合中的所有文档
可以条件查询
大于 $gt
小于 $lt
大于等于 $gte
小于等于 $lte
等于 $eq
不等于 $ne
模糊查询: /123/ 包含123 /^123/查询以123开头 /123$/查询以123结尾,这种模糊查询的语法有点类似于正则表达式。
可以选择结果中只返回某些键值。
可以查询值为某种类型的那些文档,例如db.ylCollection.find({"112":{$type:"string"}}) 查询键为112,而值类型为字符串的文档
limit() 和skip() 方法:
db.collection.find().limit(2) 只显示两条数据,db.collectionName.find().skip(2) 返回的数据中,跳过前两条数据
sort() 排序
db.collection.find().sort({key1:1}) 返回的结果按key1进行升序排列,其中参数1为升序,-1为降序
mongodb索引
createIndex()方法创建索引。