• [业务动态] 关于《基于MongoDB使用Java实现图书管理系统》微认证正式上线的预通知
    尊敬的微认证客户:您好!为帮助您深入了解华为云产品,探索新的技术场景,我们非常高兴地与您分享一个好消息:由华为资深研发团队精心打磨,潜心研发的新微认证《基于MongoDB使用Java实现图书管理系统》将于2021年8月6日正式上线!届时请进入华为云学院-微认证-软件开发查看产品详情,体验使用,我们非常期待您的宝贵建议。以下为该微认证详情,您可提前了解:产品名称: 《基于MongoDB使用Java实现图书管理系统》适合人群:想了解GaussDB(for Mongo)、DevCloud的开发人员及社会大众培训方案:基于GaussDB(for Mongo)、DevCloud,云上部署图书管理系统技术能力:GaussDB(for Mongo)的购买、连接和使用,DevCloud开发过程认证价值:基于GaussDB(for Mongo)、DevCloud实现应用系统的开发届时我们还将开展相关微认证上新活动,详情请关注华为云学院论坛-热门活动相关通知。发布日期:2021年8月3日
  • [openEuler] 【MongoDB】openEuler-20.03-LTS-SP1安装MongoDB-4.0.26
    安装环境 ![cpu.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/153224ljxzojv9tcyoyhw0.png) 安装依赖 [root@localhost ~]# yum -y install cmake libyaml libyaml-devel python-setuptools libcurl-devel python-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libpcap-dev* python2-Cython python2-pyyaml python2-typing python2-cheetah gcc gcc-c++ 下载mongodb4源码包 [root@localhost ~]#wget https://github.com/mongodb/mongo/archive/refs/tags/r4.0.26.tar.gz 解压并进入mongodb源码包编译 [root@localhost ~]# tar zxvf r4.0.26.tar.gz ![tgz.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/153255s7jyvqfqhtp3vbxj.png) [root@localhost mongo-r4.0.26]# python2 buildscripts/scons.py MONGO_VERSION=4.0.26 all CFLAGS="-march=armv8-a+crc -mtune=generic" -j 32 --disable-warnings-as-errors ![install.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/153336htfeowyh0gvuikqm.png) 安装mongodb [root@localhost ~]# mkdir /opt/mongodb-4.0.26/ [root@localhost mongo-r4.0.26]# python2 buildscripts/scons.py MONGO_VERSION=4.0.26 --prefix=/opt/mongodb-4.0.26/ --disable-warnings-as-errors CFLAGS="-march=armv8-a+crc" install -j 32 ![install-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/1534047mqq6yiue9fyklok.png) 修改配置文件 [root@localhost mongo-r4.0.26]# mkdir -p /data/mongo [root@localhost mongo-r4.0.26]# vim /etc/mongodb.cnf ![run.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/153450lhgtgoctynr6ympq.png) 加入环境变量 [root@localhost bin]# vim ~/.bashrc ![run-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/153834fvs4utvuuwow6hql.png) 后台运行 ![run-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/153912oj92iq0oiqdgxryq.png) 登录mongodb [root@localhost mongo-r4.0.26]# mongo ![run-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/26/154047pyuvivf8fllpf05k.png) 至此openEuler-20.03-LTS-SP1上MongoDB安装完成
  • [技术干货] MongoDB环境安装
    MongoDB是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系型数据库的。安装版本为4.2.5下载MongoDB安装包,选择Windows x64版本安装,下载地址:www.mongodb.com/download-ce…运行MongoDB安装包并选择自定义安装,设置好安装路径;配置MongoDB,让MongoDB作为服务运行,并配置好数据目录和日志目录;取消MongoDB Compass的安装选项(不取消安装极慢),需要可自行安装;双击mongo.exe可以运行MongoDB自带客户端,操作MongoDB;连接成功后会显示如下信息;如果需要移除MongoDB服务,只需使用管理员权限运行cmd工具,并输入如下命令sc.exe delete MongoDB
  • [问题求助] 求助 MongoDB数据导入至hbase时间类型转为timestamp
    另问下转换器中的Dateutils用的是那个包下的
  • [openEuler] 【MongoDB】openEuler-20.03-LTS-SP1安装MongoDB3.6.23
    查看系统及架构 ![cpu1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/145049tggfyt75opobyitx.png) 安装依赖 [root@localhost ~]# yum -y install cmake libyaml libyaml-devel python-setuptools libcurl-devel python-devel gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel libpcap-dev* python2-Cython python2-pyyaml python2-typing python2-cheetah gcc-c++ 下载MongoDB源码包 [root@localhost ~]#wget https://github.com/mongodb/mongo/archive/refs/tags/r3.6.23.tar.gz 解压并进入mongodb源码包编译 [root@localhost ~]# tar zvxf r3.6.23.tar.gz [root@localhost mongo-r3.6.23]# python2 buildscripts/scons.py MONGO_VERSION=3.6.23 all CFLAGS="-march=armv8-a+crc -mtune=generic" -j 32 --disable-warnings-as-errors ![install.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/145350vlrn94wt8rt2vcbu.png) ![install-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/145359ob7satzuq0wzrh5d.png) 安装mongodb [root@localhost mongo-r3.6.23]# mkdir /opt/mongodb-3.6.23 [root@localhost mongo-r3.6.23]# python2 buildscripts/scons.py MONGO_VERSION=3.6.23 --prefix=/opt/mongodb-3.6.23/ --disable-warnings-as-errors CFLAGS="-march=armv8-a+crc" install -j 32 修改配置文件 [root@localhost bin]# mkdir -p /data/mongo [root@localhost bin]# vim /etc/mongodb.cnf ![mongodb.cnf.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/145421lrzvjl8icdd6uugt.png) 后台运行 [root@localhost bin]# nohup ./mongod -f /etc/mongodb.cnf & 登录mongodb [root@localhost bin]# ./mongo ![run.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/145443kbjlhr0ym2my0xnq.png) 为方便使用可以加入环境变量 [root@localhost bin]# vim ~/.bashrc ![path.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/145613lcjlgxfdxkhddumq.png) 至此openEuler-20.03-LTS-SP1上MongoDB的安装完成
  • [openEuler] 「openEuler 简明指南」openEuler 部署 MongoDB 数据库
    # MongoDB 数据库 > 提示 > > 可能前往 [openEuler 简明指南](#) 可以获得更加良好的阅读体验。 > ### 不知细叶谁裁出,二月春风似剪刀 > > 这一小节我们将讨论如何在 openEuler 上部署 MongoDB 数据库。 ## MongoDB 环境要求 | 属性 | 说明 | | :------: | :------------------------------: | | OS | openEuler 20.03 (LTS-SP1) 或更高 | | CPU 架构 | x86_64 / aarch64 | ![neofetch.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/23/000048noyi4kkmpfxeygnz.png) 目前 MongoDB 官方没有提供 openEuler 的 RPM 包或二进制压缩包,需要我们从源码编译安装。 需要说明的是 openEuler 20.03 (LTS-SP1) 的 GCC 版本过低,需要手动编译升级。而更高版本的 openEuler 的安装过程除此之外是完全一样的。 ## 了解 MongoDB 数据库 [MongoDB](#) 是由 MongoDB Inc.(当时是 10gen 团队)于 2007 年 10 月开发,2009 年 2 月首度推出的非关系型数据库,是通用、基于文档的分布式数据库。 ## 安装 MongoDB 数据库 ### 1. 下载安装文件 1. 打开 [MongoDB 下载页面](#) > `Version`(版本)选择 `5.0.0` > `Platform`(平台)选择 `Source (tgz)`(源码)> 点击 `Download`(下载)或 `Copy Link`(复制下载链接)后通过 `wget` 下载: ![download-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2219543rszghtfzmc6c7gy.png) 2. 解压源码压缩包 `mongodb-src-r5.0.0.tar.gz`: ```sh tar -xf mongodb-src-r5.0.0.tar.gz -C /usr/local/ ``` ### 2. 安装编译所需依赖 由于 MongoDB 官方没有提供 openEuler 的二进制压缩包,所以需要自行编译。 按照官方文档的要求和系统的,编译 MongoDB 需要以下依赖: - GCC 8.2 或更新 - libcurl-devel - Python 3.7.x 和 Pip 模块 - openssl-devel 1. 检查依赖版本: ```sh gcc --version # 需要更新(openEuler 20.03 (LTS-SP1) 需要,更新 openEuler 版本不需要) python3 --version # 符合要求 pip3 --version # 符合要求 ``` ![required-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222009gpvutp2tmowhyaf9.png) 2. 安装相关依赖: ```sh sudo dnf install libcurl-devel scons ``` ![required-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/22202100w7g9wvxkybdbdc.png) 3. 打开 [GCC 镜像列表](#) > 选择一个镜像站: ![required-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2220327mbyw1ormmlysaz4.png) 4. 以霓虹这个镜像站为例,点击 `release` > `gcc-11.1.0` > 点击 `gcc-11.1.0.tar.gz` 下载 GCC 源码: ![required-4.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222043bcesnziazrlb2vkr.png) ![required-5.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222055cz6pcozuak26vot8.png) 5. 解压源码压缩包 `gcc-11.1.0.tar.gz` 到 `/usr/local/` 目录: > 提示 > > 以下命令请在 root 用户下执行: > > ```sh > su - root > ``` ```sh tar -xf gcc-11.1.0.tar.gz -C /usr/local/ cd /usr/local/gcc-11.1.0 # 切换到解压目录 ``` 6. 执行以下指令以下载安装 GCC 所需要的依赖包(如 gmp、mpfr、mpc 等): ```sh ./contrib/download_prerequisites ``` > 提示 > > 执行此命令需要确保系统安装了相关依赖,否则使用以下命令安装: > > ```sh > dnf install bzip2 wget > ``` ![required-6.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222147smehut4xlwvmvqwx.png) 7. 手动创建一个目录,用于存放编译 GCC 源码包生成的文件: ```sh mkdir /usr/local/gcc-build-11.1.0 cd /usr/local/gcc-build-11.1.0 ``` 8. 由于 GCC 编译器支持多种编程语言的编译,而实际情况中我们可能只需要编译 C 和 C++ 两种编程语言,故需要进行配置: ```sh ../gcc-11.1.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib ``` ![required-7.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222205akycarveg3mfcw53.png) 同时会生成 `Makefile` 和相关文件: ![required-8.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222215mg9pouogvwb9pcvl.png) 9. 使用 `make` 命令编译 GCC: ```sh make ``` > 提示 > > 此过程将非常耗时(2 小时或更长)。若使用 SSH 远程连接请务必配置并使用不间断会话服务,具体操作请参阅 [3. 不间断会话服务配置](#)。 ![required-9.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2222404xnxvhtxozwxo3mj.png) 10. 执行以下命令安装 GCC: ```sh make install ``` 11. 重启计算机,查看 GCC 版本信息: ```sh reboot gcc --version ``` ![required-10.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222253omdz1puf2oreyvh6.png) 12. 安装 Python 相关模块: ```sh cd /usr/local/mongodb-src-r5.0.0 python3 -m pip install -r etc/pip/compile-requirements.txt ``` ![required-11.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222306vzijgtl54doktyhd.png) ### 3. 编译 MongoDB 执行以下命令: ```sh cd /usr/local/mongodb-src-r5.0.0 python3 buildscripts/scons.py DESTDIR=/usr/local/mongo install-core --disable-warnings-as-errors ``` > 提示 > >此过程将非常耗时(2 小时或更长)。若使用 SSH 远程连接请务必配置并使用不间断会话服务,具体操作请参阅 [3. 不间断会话服务配置](#)。 当输出 `scons: done building targets.` 说明编译成功: ![build.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222327rmekymvwfb8jozll.png) ### 4. 配置 MongoDB 编译并安装 MongoDB 后,还需要做一些环境变量以及目录权限相关的配置。 > 提示 > > 以下命令请在需要管理 MongoDB 的用户下执行。 > > 可以事先创建管理 MongoDB 的用户。 #### 4-1. 设置环境变量 1. MongoDB 的可执行文件位于 `/usr/local/mongo/bin` 目录下,可将其添加到 `PATH` 路径中: ```sh vim ~/.bash_profile ``` ```sh export PATH=/usr/local/mongodb/bin:$PATH ``` ![cfg-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222353gtjhvwzb1dczovvp.png) 2. 重新登录,验证效果: ```sh echo $PATH ``` ![cfg-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/2224048r8i681weichb8pn.png) #### 4-2. 配置目录 默认情况下 MongoDB 启动后会初始化以下两个目录: - `/var/lib/mongodb` —— 数据存储目录 - `/var/log/mongodb` —— 日志文件目录 在启动前可以先创建这两个目录并设置当前用户有读写权限: ```sh sudo mkdir -p /var/lib/mongo sudo mkdir -p /var/log/mongodb sudo chown `whoami` /var/lib/mongo # 设置权限 sudo chown `whoami` /var/log/mongodb # 设置权限 ``` ![cfg-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222418b0rwgejdpnatbxyj.png) ## 启停 MongoDB 数据库 1. 使用以下命令启动 MongoDB: ```sh mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork ``` ![start-1.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222429oiqsk0cl6fmoggds.png) 2. 使用以下命令进入 MongoDB 后台管理 Shell: ```sh mongo ``` ![start-2.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222440xbvbbgeabwof73i2.png) MongoDB Shell 是 MongoDB 自带的交互式 JavaScript Shell,用来对 MongoDB 进行操作和管理的交互式环境。可执行一些简单的算数运算: ![start-3.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222453ydrfqql6xhe4gchh.png) 3. 使用以下命令关闭 MongoDB: ```sh mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --shutdown ``` ![start-4.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/202107/22/222503t3rqn2pzvokarn45.png) ## 接下来... 恭喜!你已经成功在 openEuler 上部署了 MongoDB。如果您是初学者,可以由此开始学习操作 MongoDB;如果您已经对 MongoDB 非常熟悉了,相信您很快就可以完成其它的配置以及项目的部署。 未经特殊说明,本作品采用 [知识共享署名-相同方式共享 4.0 国际许可协议](#) 进行许可。
  • [问题求助] centos7.4 arm鲲鹏云主机安装mongodb出现问题
    反复部署了多个版本的mongodb数据库,在利用mongod启动时,出现-bash: ./mongo: cannot execute binary file的错误,网上找了很多资料无法解决。
  • [问题求助] 鲲鹏架构 arm服务器中安装mongodb的问题
    按照社区的技术方案进行安装https://bbs.huaweicloud.com/forum/thread-105570-1-1.html安装完成后,无法启动:/home/smartpm/soft/mongodb-4.4.3/bin/mongod: 无法执行二进制文件 按如下方法安装的:
  • [问题求助] 系统是麒麟V10 求一个编译安装mongodb 4.0.12的文档
    【功能模块】KylinOS | Kylin Linux Advanced Server (Kunpeng) V10   服务器鲲鹏系列 系统是麒麟V10  求一个完整编译安装 mongodb 4.0.12 的文档 谢谢【操作步骤&问题现象】1、2、【截图信息】【日志信息】(可选,上传日志内容或者附件)
  • [技术讨论] 鲲鹏-MongoDB-4.4.1迁移
    迁移环境虚拟机服务器 KVM Virtual Machine 虚拟机配置:aarch64架构 、 32G内存 、 16核 、300G磁盘空间 虚拟机操作系统: Linux version 4.19.90-2009.3.0.0045.up1.uel20.aarch64 (abuild@armbuild-02) (gcc version 7.3.0 (GCC)) #1 SMP Sun Oct 11 16:12:59 UTC 2020 软件版本:mongodb-4.4.1 版本获取方式https://github.com/mongodb/mongo/archive/r4.4.1.tar.gz   参考编译指南和问题https://support.huaweicloud.com/prtg-kunpengdbs/kunpengdbs_02_0004.html mongodb4.4.1的版本依赖gcc 8.2以上, Python 3.7.x、编译相关依赖:CMake 通过yum install cmake 安装Cython、pyyaml、typing、cheetah3  通过 python3 setup.py install 方式安装 gcc升级到8.2wget http://ftp.gnu.org/gnu/gcc/gcc-8.2.0/gcc-8.2.0.tar.gztar -C /usr/local -xzf gcc-8.2.0.tar.gzcd /usr/local/gcc-8.2.0./contrib/download_prerequisites mkdir build cd build ../configure -enable-checking=release -enable-languages=c,c++ -disable-multilibyum groupinstall "Development Tools" make -j16#这个步骤非常耗时长make install  修改 /etc/profile 添加如下命令:export PATH=/usr/local/bin:$PATH使配置生效source /etc/profile gcc -v  查看版本号就变成8.2了 如果需要完全替代本地的gcc进行如下操作,(以下操作不影响编译):{find / -name "libstdc++.so*"输出如下(最新动态库的目录)/usr/local/gcc-8.2.0/build/stage1-aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25/usr/local/gcc-8.2.0/build/stage1-aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6/usr/local/gcc-8.2.0/build/ /usr/local/gcc-8.2.0/build/stage1-aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so复制最新动态库文件libstdc++.so.6.0.25到/usr/lib64下cp /usr/local/gcc-8.2.0/build/ stage1-aarch64-unknown-linux-gnu/libstdc++-v3/src/.libs/libstdc++.so.6.0.25 /usr/lib64复制后,修改系统默认动态库的指向,即:重建默认库的软连接。切换工作目录至/usr/lib64:cd /usr/lib64删除原来软连接rm -rf libstdc++.so.6将默认库的软连接指向最新动态库:ln -s libstdc++.so.6.0.25 libstdc++.so.6默认动态库升级完成。重新运行以下命令检查动态库:strings /usr/lib64/libstdc++.so.6 | grep GLIBCgcc -v 查看版本号就变成8.2了 }编译报错Do not know how to make File target ‘all’按照迁移文档中的编译命令会出现如下错误: 原因是r4.4.1版本中scans已经没有定义all标签了,以下是编译mongod模块命令:python3 buildscripts/scons.py install-mongod  MONGO_VERSION=4.4.1 CFLAGS="-march=armv8-a+crc -mtune=generic" -j 16  --disable-warnings-as-errors  编译完成后可以在: /build/install 查看到已编译完成的文件,如果编译和安装一起,命令参考安装问题中的安装命令。 如果需要编译其他模块,install-mongod可修改成如下: install-mongodinstall-mongosinstall-mongoor install-shellinstall-servers(includes mongod and mongos)install-core(includes mongod, mongos, mongo)install-allinstall-all-meta (includes   mongod, mongo, unit tests, etc)其中如果编译(mongod, mongos, and mongo)中的一个模块的话推荐20G以上的磁盘空间,如果编译install-all-meta 推荐300G以上 ,如果install-all推荐600G以上的磁盘空间。 No module named ‘psutil’  安装如下依赖:yum install python3-develpip3 install psutil ssl依赖不存在 安装如下依赖:yum install openssl-devel  安装问题按照迁移文档中的安装命令会出现如下错误:  原因是r4.4.1版本中scans已经没有定义install标签了,以下是安装mongod模块命令: python3 buildscripts/scons.py MONGO_VERSION=4.4.1 DESTDIR=/ PREFIX=/usr/local/mongo --disable-warnings-as-errors CFLAGS="-march=armv8-a+crc" install-mongod -j 16 表示安装到/usr/local/mongo目录下。其他模块修改install-mongod即可。 
  • [技术干货] mongodb driver使用代码详解
    环境准备创建工程,并添加以下依赖:<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.10.1</version> </dependency>2 使用mongodb-driver2.1 查询所有@Test public void test1() { //创建连接 MongoClient client = new MongoClient("192.168.200.128"); //打开数据库 MongoDatabase commentdb = client.getDatabase("commentdb"); //获取集合 MongoCollection<Document> comment = commentdb.getCollection("comment"); //查询 FindIterable<Document> documents = comment.find(); //查询记录获取文档集合 for (Document document : documents) { System.out.println("_id:" + document.get("_id")); System.out.println("内容:" + document.get("content")); System.out.println("用户ID:" + document.get("userid")); System.out.println("点赞数:" + document.get("thumbup")); } //关闭连接 client.close(); } } 2.2 根据_id查询每次使用都要用到MongoCollection,进行抽取:private MongoClient client; private MongoCollection<Document> comment; @Before public void init() { //创建连接 client = new MongoClient("192.168.200.128"); //打开数据库 MongoDatabase commentdb = client.getDatabase("commentdb"); //获取集合 comment = commentdb.getCollection("comment"); } @After public void after() { client.close(); } @Test public void test2() { //查询 FindIterable<Document> documents = comment.find(new BasicDBObject("_id", "1")); //查询记录获取文档集合 for (Document document : documents) { System.out.println("_id:" + document.get("_id")); System.out.println("内容:" + document.get("content")); System.out.println("用户ID:" + document.get("userid")); System.out.println("点赞数:" + document.get("thumbup")); } }2.3 新增@Test public void test3() { Map<String, Object> map = new HashMap(); map.put("_id", "6"); map.put("content", "很棒!"); map.put("userid", "9999"); map.put("thumbup", 123); Document document = new Document(map); comment.insertOne(document); }@Test public void test3() { Map<String, Object> map = new HashMap(); map.put("_id", "6"); map.put("content", "很棒!"); map.put("userid", "9999"); map.put("thumbup", 123); Document document = new Document(map); comment.insertOne(document); }2.4 修改@Test public void test4() { //修改的条件 Bson filter = new BasicDBObject("_id", "6"); //修改的数据 Bson update = new BasicDBObject("$set", new Document("userid", "8888")); comment.updateOne(filter, update); }2.5 删除@Test public void test5() { //删除的条件 Bson filter = new BasicDBObject("_id", "6"); comment.deleteOne(filter); }优势:1、在适量级的内存的MongoDB的性能是非常迅速的,它将热数据存储在物理内存中,使得热数据的读写变得十分快。2、MongoDB的高可用和集群架构拥有十分高的扩展性。3、在副本集中,当主库遇到问题,无法继续提供服务的时候,副本集将选举一个新的主库继续提供服务。4、MongoDB的Bson和JSon格式的数据十分适合文档格式的存储与查询。劣势:1、 不支持事务操作。MongoDB本身没有自带事务机制,若需要在MongoDB中实现事务机制,需通过一个额外的表,从逻辑上自行实现事务。2、 应用经验少,由于NoSQL兴起时间短,应用经验相比关系型数据库较少。3、MongoDB占用空间过大。
  • [技术干货] PHP封装的简单连接MongoDB类示例
    1. 封装MongoDB类<?php class MongoDB { private $database; private $mongo; function __construct() { $this->mongo = new MongoClient("mongodb://user:password@server_address:port/admin"); $this->database = $this->mongo->selectDB("data"); } { return $this->database->selectCollection($collection); } //获取所有的集合名 function getCollections() { return $this->database->getCollectionNames(); } //选数据库 function selectDB($db) { $this->database = $this->mongo->selectDB($db); } } 2. 简单调用,insert数据。class DemoController extends CI_Controller { function __construct() { parent::__construct(); //CI中加载类 $this->load->library('mongo_lib', '', 'mongodb'); } //插入一条数据 function create() { $data = array('name'=>'mike','email'=>'abc@163.com); //选择库,shell:user demo_db $this->mongodb->selectDB('demo_db'); //选择集合,db.demo_col.insert(); $rebateCollection = $this->mongodb->getCollection('demo_collection'); $res = $rebateCollection->insert($data); } }
  • [技术干货] MongoDB 复制
    replication set复制集,复制集,多台服务器维护相同的数据副本,提高服务器的可用性。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许您从硬件故障和服务中断中恢复数据。设置过程:(1)创建示例假设创建三台,创建三个实例目录和日志目录:mkdir /home/m17 /home/m18 /home/m19 /home/mlog启动三个示例,端口分别为27017、27018、27019。./mongod --dbpath=/home/m17 --logpath=/home/mlog/m17.log --fork --port=27017 --replSet=rs2 --smallfiles ./mongod --dbpath=/home/m18 --logpath=/home/mlog/m18.log --fork --port=27018 --replSet=rs2 --smallfiles ./mongod --dbpath=/home/m19 --logpath=/home/mlog/m19.log --fork --port=27019 --replSet=rs2 --smallfiles 说明:参数--replSet设置一样,才能属于同一个复制集参数--smallfiles可以节省空间,提高速度。然后使用ps aux | grep mongo可以查看到启动起来的三个端口。(2)配置使用客户端连接mongo进行配置:[test@localhost bin]$ ./mongo要管理配置,所以切换到admin上:>use admin(配置是json格式)var rsconf = { _id:'rs2', members:[ {"_id":0,host:'192.168.8.172:27017'}, {_id:1,host:'192.168.8.172:27018'}, {_id:2,host:'192.168.8.172:27019'} ] }如果没有配置ip,使用127.0.0.1var rsconf = { _id:'rs2', members:[ {_id:0,host:'127.0.0.1:27017'}, {_id:1,host:'127.0.0.1:27018'}, {_id:2,host:'127.0.0.1:27019'} ] } 执行后,使用 printjson(rsconf)查看刚才的配置。然后执行初始化:>rs.initiate(rsconf); > rs.initiate(rsconf); { "ok" : 1, "operationTime" : Timestamp(1539933041, 1), "$clusterTime" : { "clusterTime" : Timestamp(1539933041, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } } rs2:SECONDARY>  查看节点:rs.status()删除节点:rs.remove('127.0.0.1:27019')添加节点:rs.add('127.0.0.1:27019')切换节点:默认是在27017端口,即rs2:PRIMARY>状态,退出mongo客户端命令模式,切换到另一个端口:[test@localhost bin]$ ./mongo --port=27018,
  • [技术干货] MongoDB 复制
    replication set复制集,复制集,多台服务器维护相同的数据副本,提高服务器的可用性。MongoDB复制是将数据同步在多个服务器的过程。复制提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。复制还允许您从硬件故障和服务中断中恢复数据。设置过程:(1)创建示例假设创建三台,创建三个实例目录和日志目录:mkdir /home/m17 /home/m18 /home/m19 /home/mlog启动三个示例,端口分别为27017、27018、27019。./mongod --dbpath=/home/m17 --logpath=/home/mlog/m17.log --fork --port=27017 --replSet=rs2 --smallfiles ./mongod --dbpath=/home/m18 --logpath=/home/mlog/m18.log --fork --port=27018 --replSet=rs2 --smallfiles ./mongod --dbpath=/home/m19 --logpath=/home/mlog/m19.log --fork --port=27019 --replSet=rs2 --smallfiles 说明:参数--replSet设置一样,才能属于同一个复制集参数--smallfiles可以节省空间,提高速度。然后使用ps aux | grep mongo可以查看到启动起来的三个端口。(2)配置使用客户端连接mongo进行配置:[test@localhost bin]$ ./mongo 要管理配置,所以切换到admin上:>use admin(配置是json格式)var rsconf = { _id:'rs2', members:[ {"_id":0,host:'192.168.8.172:27017'}, {_id:1,host:'192.168.8.172:27018'}, {_id:2,host:'192.168.8.172:27019'} ] } 如果没有配置ip,使用127.0.0.1var rsconf = { _id:'rs2', members:[ {_id:0,host:'127.0.0.1:27017'}, {_id:1,host:'127.0.0.1:27018'}, {_id:2,host:'127.0.0.1:27019'} ] } 执行后,使用 printjson(rsconf)查看刚才的配置。然后执行初始化:>rs.initiate(rsconf); > rs.initiate(rsconf); { "ok" : 1, "operationTime" : Timestamp(1539933041, 1), "$clusterTime" : { "clusterTime" : Timestamp(1539933041, 1), "signature" : { "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="), "keyId" : NumberLong(0) } } } rs2:SECONDARY> 查看节点:rs.status()删除节点:rs.remove('127.0.0.1:27019')添加节点:rs.add('127.0.0.1:27019')切换节点:默认是在27017端口,即rs2:PRIMARY>状态,退出mongo客户端命令模式,切换到另一个端口:[test@localhost bin]$ ./mongo --port=27018,
  • [技术干货] ubuntu安装mongodb创建账号和库及添加坐标索引的流程分析
    摘要: 作为开发,nosql我们用的越来越多,代表性的是mongodb,速度快性能好,还能完美的创建二维索引.这里我们梳理一下ubuntu上安装mongodb创建账号和库及添加坐标索引一  安装  1.1 安装php-mongodbsudo apt-get install php-mongodb 1.2 安装mongodb-orgsudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 如果是ubuntu16或者18则echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list接下来sudo apt-get update sudo apt-get install -y mongodb-org sudo service mongod start # 启动二  常见启动等命令sudo service mongod start # 启动 sudo service mongod stop # 关闭 ps aux | grep mongod  # 查看进程三  创建表,角色与权限   3.1 管理员账号mongo --host 127.0.0.1 use admin db.createUser( ... { ... user: "test", ... pwd: "test@1111", ... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ] ... } ... ) db.getUser('test') exit3.2 对象库管理员账号及权限mongo --host 127.0.0.1 -u 'test' --authenticationDatabase 'admin' -p 'test@1111' use admin db.auth('test','test@1111') use lbs db.createUser( ... { ... user: "testlbs", ... pwd: "testlbs1111", ... roles: [ { role: "readWrite", db: "lbs" }, ... { role: "read", db: "lbs" } ] ... } ... ) exit3.3 对象库索引mongo --host 127.0.0.1 -u 'testlbs' --authenticationDatabase 'lbs' -p 'testlbs1111' db use lbs db db.createCollection('lbs',{capped:false}) db.lbs.createIndex({'location':'2dsphere'}) db.lbs.createIndex({'uniqid':1},{unique:true})四  卸载  4.1 关闭守护进程mongodsudo service mongod stop4.2 卸载安装的软件包sudo apt-get purge mongodb-org* 4.3 移除数据库和日志文件(数据库和日志文件的路径取决于/etc/mongod.conf文件中的配置)sudo rm -r /var/log/mongodb sudo rm -r /var/lib/mongodb
总条数:165 到第
上滑加载中