MongoDB使用经验总结

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 摘要:   最近在开发项目使用了数据库MongoDB,我将它的使用方法整理下分享给大家。至于mongoDB有什么优点,大家可以到官网去看。 安装:   首先我们需要到官网下载适合自己系统的mongodb。

摘要:

  最近在开发项目使用了数据库MongoDB,我将它的使用方法整理下分享给大家。至于mongoDB有什么优点,大家可以到官网去看。

安装:

  首先我们需要到官网下载适合自己系统的mongodb。

windows:

  你可以在命令窗口中输入下面命令来查看自己的系统参数,选择对应的版本

wmic os get osarchitecture

如果你下载的是zip文件,只需要按照下面的步骤来就可以安装了:

1、将下载的文件解压缩到自己想要安装的目录,比如:D:\test\。将解压的文件夹名改成mongodb,在mongodb文件里面包含bin文件等。

2、创建数据和日志仓库,新建文件夹D:\test\mongodb\data\db和D:\test\mongodb\data\log,在log文件夹下新建一个日志文件MongoDB.log。

3、设置数据仓库路径并启动,MongoDB默认的数据仓库是\data\db,我们需要更改为自己设置的路径,在命令提示窗内输入

>d:

d:>cd D:\test\mongodb\bin

D:\test\mongodb\bin>mongod --dbpath "D:\test\mongodb\data"

如果控制台看到类似的信息就说明安装成功了

注意:关闭该窗口就关闭了mongodb的服务,如果你想关闭服务可以使用Ctrl+c来关闭。

4、测试连接,重新打开一个命令窗口,进入到上面的目录下,然后输入mongo或者mongo.exe当出现下面信息时说明测试通过,此时我们已经进入了mongo的默认数据库test这个数据库。

5、上面提到关闭窗口mongo的服务就被关闭了,这样的话每次我们需要mongoDB服务时都要开启mongod.exe程序,比较麻烦。我们可以将mongo设置为windows的默认服务。

在mongodb的bin目录下执行下面命令

mongod --dbpath "D:\test\mongodb\data\db" --logpath "D:\test\mongodb\data\log\MongoDB.log" --install --serviceName "MongoDB"

参数详解:

–install : 安装

–remove : 移除

–serviceName <name> : 服务名称

–serviceDisplayName <display-name> : 服务列表显示名称

–serviceDescription  <description> : 服务描述

 

设置好之后只需要执行下面命令就可以启动mongoDB

NET START MongoDB

6、关闭和删除

关闭:

net stop MongoDB

删除:

sc.exe delete MongoDB

如果你下载的是msi文件,只需要双击安装文件,一步一步安装就可以。最后你会在C:\Program Files目录下发现MongoDB 2.6 Standard文件。这个文件和我们下载的zip文件类似,我们只需要按照zip文件安装的方法安装即可。

MAC:

如果你的系统是mac,有两种方法安装

1、使用brew,只需要执行下面命令就可以安装mongoDB

brew install mongodb
或者
brew install mongodb --with-openssl
在或者
brew install mongodb --devel

2、常规安装

先down下来文件包

curl -O http://downloads.mongodb.org/osx/mongodb-osx-x86_64-2.6.6.tgz
解压
tar -zxvf mongodb-osx-x86_64-2.6.6.tgz

然后将文件复制到安装目录

mkdir -p mongodb
cp -R -n mongodb-osx-x86_64-2.6.6/ mongodb

3、将安装路径配置到rc file 

export PATH=<mongodb-install-directory>/bin:$PATH

4、创建数据仓库

mkdir -p /data/db

5、设置数据路径

mongod --dbpath <path to data directory>

注意:不要将mongod.exe文件在公共网内可见,因为MongoDB是在可信任的环境中执行的。

操作数据库:

 启动mongodb,创建数据库mongotest

use mongotest;

向mongotest的user表插入数据

db.user.insert({
  name:'zhangsan',
  age:20
});

我们在node环境下来操作数据库

mkdir myproject
cd myproject

创建package.json文件如下

{
  "name": "myproject",
  "version": "1.0.0",
  "description": "My first project",
  "main": "index.js",
  "repository": {
    "type": "git",
    "url": "git://github.com/christkv/myfirstproject.git"
  },
  "dependencies": {
    "mongodb": "~2.0"
  },
  "author": "Christian Kvalheim",
  "license": "Apache 2.0",
  "bugs": {
    "url": "https://github.com/christkv/myfirstproject/issues"
  },
  "homepage": "https://github.com/christkv/myfirstproject"
}

执行npm install命令来安装mongoDB模块。新建文件mongotest.js,内容如下:

var mongodb = require('mongodb');

var server = new mongodb.Server("127.0.0.1",27017,{});//本地27017端口

new mongodb.Db('mongotest',server,{}).open(function(error,client){//数据库:mongotest
    if(error) throw error;
    var collection = new mongodb.Collection(client,'user');//表:user
    collection.find(function(error,cursor){
        cursor.each(function(error,doc){
            if(doc){
                console.log("name:"+doc.name+" age:"+doc.age);
            }
        });
    });
});

运行:

node mongodbTest.js

输出结果为

命令:

  1、基本

show dbs 显示数据库列表
use db 进入db数据库
show collections 显示数据库中的集合

  2、增

db.table.save({"id":1}) 创建名为table的表,并新增一条数据
db.table.insert({"id":1}) 在table表中插入一条新数据,,如果没有table表,mongodb会自动创建

  3、改

db.users.update({"id":10},{"name": "zhangsan"}) 修改id=10的记录name=zhangsan,第一个参数是查找条件,第二个参数是修改内容,除了主键,其他内容会被第二个参数的内容替换,主键不能修改

 

  4、删

db.table.remove()  删除表table的所有数据,但是表还存在
db.table.remove({"id": 1}) 删除table表的id=1的记录
db.table.drop() 删除表table
db.runCommand({"drop","table"}) 删除表table
db.runCommand({"dropDatabase": 1}) 删除当前数据库

 

  5、查

db.table.find() 查找table表下的所有数据

db.collection.find({ "key" : value })

查找key=value的数据
db.table.findOne() 查找table表的第一条记录
db.collection.find({ "key" : { $gt: value } }) 查找key > value的数据

  6、排序

db.collection.find().sort({ "key1" : -1 ,"key2" : 1 })

将查找的结果按照第一个字段降序,第二个字段升序排

 

 

附录:

  http://docs.mongodb.org/manual/

  https://github.com/mongodb/node-mongodb-native

 

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。 &nbsp; 相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
7月前
|
NoSQL 分布式数据库 MongoDB
【MongoDB 专栏】MongoDB 的分布式事务解决方案
【5月更文挑战第11天】本文探讨了MongoDB的分布式事务处理,涉及两阶段提交(2PC)、TCC补偿事务、分布式锁和幂等处理。2PC通过协调者与参与者确保数据一致性,而TCC提供更高性能和容错性。分布式锁解决并发冲突,幂等处理保证事务正确性。根据业务需求选择合适方案,并关注性能、可靠性和容错。
360 2
【MongoDB 专栏】MongoDB 的分布式事务解决方案
|
6月前
|
存储 负载均衡 NoSQL
MongoDB架构设计
【6月更文挑战第6天】MongoDB架构设计
71 2
|
7月前
|
NoSQL 安全 MongoDB
【MongoDB 专栏】MongoDB 的安全性考虑与实践
【5月更文挑战第11天】在数字化时代,MongoDB的数据安全至关重要。面临网络攻击、内部威胁、数据泄露和未授权访问等风险,我们需要重视MongoDB的安全性。关键措施包括身份验证和授权、数据加密、网络安全、备份和恢复、安全审计及正确配置。实践中应启用身份验证,配置访问控制,加密敏感数据,加强网络安全,并定期备份和审计。保持软件更新,结合业务需求制定安全策略,以确保数据的保密性、完整性和可用性。
232 0
【MongoDB 专栏】MongoDB 的安全性考虑与实践
|
SQL 存储 NoSQL
「技术选型」比较MongoDB和PostgreSQL:谁才是王者?
「技术选型」比较MongoDB和PostgreSQL:谁才是王者?
|
存储 NoSQL JavaScript
MongoDB必备知识点全面总结(二)
MongoDB必备知识点全面总结
359 0
MongoDB必备知识点全面总结(二)
|
存储 SQL NoSQL
MongoDB必备知识点全面总结(四)
MongoDB必备知识点全面总结
273 0
MongoDB必备知识点全面总结(四)
|
存储 JSON NoSQL
MongoDB必备知识点全面总结(三)
MongoDB必备知识点全面总结
317 0
MongoDB必备知识点全面总结(三)
|
存储 JSON NoSQL
MongoDB必备知识点全面总结(一)
MongoDB必备知识点全面总结
675 0
MongoDB必备知识点全面总结(一)
|
设计模式 机器学习/深度学习 JSON
『MongoDB』MongoDB模型设计的成神之路
📣读完这篇文章里你能收获到 - 为什么很多人认为MongoDB是无模式? - 文档模型跟传统的关系模型有什么区别? - 关于MongoDB的模型设计模式,你知道几个? - MongoDB如何进行表关联? - 文档模型的设计规范及设计原则 - 文档建模模型设计三部曲 - 1-1关系建模,1-N关系建模,N-N关系建模的建议 - 针对不同的场景提供丰富的设计案例分享
467 0
『MongoDB』MongoDB模型设计的成神之路
|
移动开发 NoSQL MongoDB
MongoDB使用经验总结
MongoDB使用经验总结
MongoDB使用经验总结