可以通过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()方法创建索引。



最新文章

  1. 查看 SHA1
  2. 1行代码,删除svn文件夹
  3. linux修改主机名(hostname)转载
  4. hdu2317Nasty Hacks
  5. 解决JSP中,类无法被编译的问题(XX cannot be resolved to a type)
  6. Jquery对select下拉框的操作
  7. 用Docker在一台笔记本电脑上搭建一个具有10个节点7种角色的Hadoop集群(上)-快速上手Docker
  8. 改进Android语音对讲系统的方法
  9. Tuxedo:Tuxedo支持的分布式通信方式
  10. JAVA_SE基础——46.引用数据类型变量.值交换[独家深入解析]
  11. Spring Security入门(2-1)Spring Security - 重要的过滤器
  12. select2 下拉无法显示
  13. 使用unittest单元测试框架对加法做单元测试
  14. Docker容器的创建、启动、和停止
  15. Hive HiveServer2+beeline+jdbc客户端访问操作
  16. 写出3个使用this的典型应用
  17. kong安装
  18. c++友元函数、友元类、友成员函数
  19. javashop每次重新部署都要从新安装的问题
  20. Object和Thread自带的原生方法

热门文章

  1. 广播接收者 BroadcastReceiver
  2. 一、submit和button区别
  3. BCB:内存泄漏检查工具CodeGuard
  4. ES6新增rest的用法
  5. Perl 使用哈希的引用
  6. java上传、下载、删除ftp文件
  7. minGw64编译Qt时遇到too many sections问题
  8. C++代码学习之一:组合模式例子
  9. win32应用程序和win32控制台应用程序的区别
  10. 数据结构( Pyhon 语言描述 ) — — 第1章:Python编程基础