MongoDB

Posted xiaoCong2015

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB相关的知识,希望对你有一定的参考价值。





知识点


要存入MongoDB 的数据模型的属性的类型是枚举类型 , 会变成枚举类的类名 , 字符串类型
例如 :
模型类叫  News
 

 


 


常用操作


根据 数组的大小 查询文档
想要找这样的文档, 它的这种属性的类型是数组 , 数组里面至少有3个元素
例如 :
查找 属性 -- userIds 数组的大小是7的文档
方法1 :
{  "userIds" : { $size:7 }  }

方法2 :
判断数组中的第7个元素是否存在
{  "userIds.7" : { $exists:1 }  }
7表示第7个元素 , 1表示存在( 0表示不存在 )

其他方法 参考文章
http://www.jb51.net/article/49391.htm


环境搭建

参考 http://www.runoob.com/mongodb/mongodb-window-install.html , 下面是具体操作

安装


官网

https://www.mongodb.com

社区版 DB下载
https://www.mongodb.com/download-center#community

2017-12-10 最新的下载链接 mongodb-win32-x86_64-2008plus-ssl-3.6.0-signed
https://www.mongodb.com/dr/fastdl.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.6.0-signed.msi/download

安装时候只能安装在默认路径 , 没得选 , 在C盘
C:\\Program Files\\MongoDB\\Server\\3.4\\bin

创建相关的文件夹 , 用来放 数据库的数据 和 log

 

日志,红色的文件是自动生成的
d:\\MongoData\\dbConf\\mongodb.log

数据库文件
d:\\MongoData\\db

要弄到环境变量里 , 不配置也行, 下面的命令要加上前缀
C:\\Program Files\\MongoDB\\Server\\3.4\\bin

不然
\'mongod.exe\' 不是内部或外部命令,也不是可运行的程序
或批处理文件。


被数据库配置成服务 , 像mysql一样开机自启,要用管理员权限运行cmd

mongod.exe --bind_ip 127.0.0.1 --logpath "d:\\MongoData\\dbConf\\mongodb.log" --logappend --dbpath "d:\\MongoData\\db" --port 27017 --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

网上的原来的命令行
mongod.exe --bind_ip yourIPadress --logpath "C:\\data\\dbConf\\mongodb.log" --logappend --dbpath "C:\\data\\db" --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install


有空的话确认下服务是否配置好了 , 要是自动的

如果没看到 , 则是因为运行上面命令的时候不是用管理员权限 . 重复执行一次 , 不用删除东西

可以再手动改成 自动(延迟) , 使开机后的一瞬间不那么卡



此时服务还没有启动 , 要开机后才自动启动 , 现在要开的话鼠标右键 , 开启


有空的话确认下db 文件夹里是否有自动生成的东西


开启数据库服务

可以写在bat批处理文件里 , 如果不通过"开机自启服务"的话 , 可以用这种方式一键启动服务

mongod.exe --dbpath d:\\MongoData\\db

成功


用MongoDB chef 连接成功
左上角的连接名随便写 , 但别写中文 ( 展示的时候会乱码 )








 以前的配置笔记
{
mongod --dbpath D:\\mongodb\\data --logpath=D:\\mongodb\\log\\mongodb.log  

路径中不能有空格,新建用来放数据库文件和日志的文件夹

mongod --dbpath D:\\MongodbFile\\data --logpath=D:\\MongodbFile\\log\\mongodb.log



mongod --dbpath D:\\MongoDBData --logpath=D:\\MongoDB\\log\\mongodb.log  
}

使用 , 工具

用 MongoChef 这个管理软件,开源且免费,有商业版。可自动化生成查询语句

 

最下面的 _id 是自动生成的,手动指定
{ 
    "name" : "xiaoCong", 
    "age" : 18.0, 
    "_id" : ObjectId("58e4b2d54825119b402bde7e")
}


优点

数据库本身就是面向对象的,所以不需要ORM,不用映射


缺点,少用

似乎不支持复杂的查询,比如 条件查询,个数不确定的参数

操作DB的工具太少
工具不好用,除非是收费的
可用 js 操作,但类型,是动态的
不需要var先声明一个变量,所以不知道这个变量之前有没有被人操作过
市场小,需求少,我在2016.10.4为止没看到福州哪家公司用这个数据库



Not only SQL
MongoDB 在3.0 用Go 语言重写了所有的工具集

MongoDB 3.2版本

环境变量,默认安装在C:\\Program Files\\MongoDB\\Server\\ 下,后面跟着版本
MongoDB
C:\\Program Files\\MongoDB\\Server\\3.2\\bin

在 创建一些文件夹,放DB文件,E:\\MongoDB\\data\\db 

用mongod启动服务  cmd控制台
mongod --dbpath E:\\MongoDB\\data\\db

确认服务是否开启:
用浏览器打开
显示It looks like you are trying to access MongoDB over HTTP on the native driver port.

操作mongo
mongo
MongoDB shell version: 3.2.9
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
>

打开官方shell
mongo

第三方GUI管理工具,明显比shell命令行好用,尤其是做高级操作的时候

用这个  MongoChef  开源且免费,有商业版
 
NoSQL Manager for MongoDB


name
{name:"xiaoCong" }
{name:\'xiaoCong\' }
name:"xiaoCong"
name:\'xiaoCong\'


RockMongo



不兼容win10吗

MongoVUE     Gui tools for MongoDB
http://www.mongovue.com/
我选择安装在D:\\Program Files (x86)\\MongoVUE\\MongoVUE 1.6.9

然后破解之:
替换掉安装目录下的 MongoVUE.exe文件 即可破解

connectNane
myDB
最后一个留空,表示连接到所有数据库,也可以像这样指定连接到某个数据库
 
 

db.test.insert( {
    user_id: "abc123",
    age: 55,
    status: "A"
} )
However






以上是关于MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

MongoDBMongodb——GridFS存储

mongoDBmongoDB副本集实战

MongoDBMongoDb数据结构

MongoDBmongodb设置用户访问权限

MongodbMongodb复制和分片

MongoDBMongoDB的安装教程