【MongoDB】MongoDB入门(一)基本操作&常用命令

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 【MongoDB】MongoDB入门(一)基本操作&常用命令

MongoDB安装

C:>cd C:\MongoDB\bin

C:\MongoDB\bin>mongod.exe --dbpath=C:\MongoDB\data\db --directoryperdb --logpath=C:\MongoDB\data\logs --logappend

  • 4、新建命令行,运行客户端程序mongo.exe (不要关闭mongod.exe这个命令行窗口)

MongoDB概念

  • databases: 数据库;
  • collections:表;(colloections组成了databases)
  • documents:行;(documents组成了collections)

MongoDB没有新建数据库的命令,只要进行insert或其它操作,MongoDB就会自动帮你建立数据库和collection。当查询一个不存在的collection时也不会出错,Mongo会认为那是一个空的collection。

一个对象被插入到数据库中时,如果它没有ID,会自动生成一个“_id”字段,为12字节(24位)16进制数。

当然如果插入文档不带_id,则系统会帮你自动创建一个,如果自己指定了就用自己指定的。

命名

字段名限制:不能以“$”开头;不能包含“.”;“_id”是系统保留的字段,但用户可以自己储存唯一性的数据在字段中。

客户端语法:

  • show dbs // 列出所有数据库
  • use memo // 使用数据库memo。即使这个数据库不存在也可以执行,但该数据库不会立刻被新建,要等到执行了insert等的操作时,才会建立这个数据库。
  • show collections // 列出当前数据库的collections(当前数据库下的表)
  • db // 显示当前数据库
  • show users // 列出用户
  • db.表名.insert({name:“jack”,addr:“fujian”});//向表插入字段
  • db.表名.find();//查询-作用相当于select * from 表名

查询数据

  • $lt ->less then 小于
  • $lte ->less than and equal 不大于
  • $lt ->less then 小于
  • $gt ->greater then 大于
  • $gte ->greater then and equal 不小于)
  • $ne ->not equal 不等于

db.foo.find() // select * from foo

db.foo.find().limit(10) // select * from foo limit 10

db.foo.find().sort({x:1}) // select * from foo order by x asc 1:升序 -1:降序

db.foo.find().sort({x:1}).skip(5).limit(10) // select * from foo order by x asc limit 5, 10

db.foo.find({x:10}) // select * from foo where x = 10

db.foo.find({x: {$lt:10}}) // select * from foo where x <= 10

db.foo.find({}, {y:true}) // select y from foo

一些SQL不能做的,MongoDB也可以做:

db.foo.find({“address.city”:“gz”}) // 搜索嵌套文档address中city值为gz的记录

db.foo.find({likes:“math”}) // 搜索数组

db.foo.ensureIndex({“address.city”:1}) // 在嵌套文档的字段上建索引

更新数据

  • db.foo.update({},{}) //更新对象,第一个参数是查询对象,第二个是替代的,可以在第二个对象里指定更新哪些字段,要使用s e t 。 " set。"set"set"用来指定一个键的值。如果这个键不存在,则创建它,如果存在则更新

db.foo.update({name:“jack”},{$set:{name:“zky”}});

删除记录

  • db.foo.remove({});//第一个参数要删除的记录,只删除匹配的对象

删除数据库表

  • db.foo.drop();//删除foo这个表

删除当前数据库

  • db.dropDatebase();

字段操作

  • $push:增加数组元素;

db.foo.update({name:‘xxx’},{$push:{age:“10”}});

  • $pop:减少数组元素;
  • o r , or,orand和$exists

db.people.find({“name”:“yhb”,$or:[{“age”:18},{“age”:20}]}) //找出name为yhb,age为18或者20的;

db.people.find({“addr”:{$exists:false}}) //找出不存在addr field

db.people.find({$or:[{“name”:“yhb”,“age”:18},{“name”:“lwy”,“age”:19}]})

//找出people中name为yhb,年龄为18,或者name为lwy,name为19的

小结

如果是or: ->> {KaTeX parse error: Expected 'EOF', got '}' at position 17: …r:[{条件1},{条件2}]}̲ 如果是and: ->> {and:[{条件1},{条件2}]}

索引

db.foo.ensureIndex({productid:1})  // 在productid上建立普通索引
db.foo.ensureIndex({district:1, plate:1})  // 多字段索引
db.foo.ensureIndex({productid:1}, {unique:true}) // 唯一索引

备份与恢复

(1)、备份工具 mongodump;

命令行执行:

c:\MongoDB\bin\mongodump.exe --help 查看帮助命令

示例-备份数据库:

命令行执行:

c:\MongoDB\bin\mongodump -o ../data/backup/test (备份数据到backuo/test目录下)

(2)、恢复数据 mongorestore:

示例-恢复数据库:

命令行执行:

c:\MongoDB\bin\mongorestore -d test -c t002 c:\MongoDB\data\backup\test\t002.bson

数据 导入& 导出

每次只导入\导出一个表,json或csv格式;

(1)、导入 mongoimport

示例:

mongoimport -d test -c t004 drop c:\MongoDB\data\backup\test_t001.json

(2)、导出 mongoexport

示例:

mongoexport -d test -c t001 -o c:\MongoDB\data\backup\test_t001.json

安全与认证

MongoDB本身是没有开启安全性检查的,在开启之前,需要至少一个管理员账号。

开启安全性检查,只有数据库认证用户才能执行读或写的操作。

增加用户

注:V3版本mongoDB已经不再使用addUser,而是采用了db.createUser;

示例:

use admin
db.createUser(
   {
     user: "accountUser",
     pwd: "password",
     roles: [ "readWrite", "dbAdmin" ]
   }
)

对用户开启安全认证

1、重启客户端与服务器;
2、然后切换到客户端命令行:
use admin
db.auth("root","root")
这样,某种权限的用户只有切换到对应的数据库才能执行某些操作。

参考

http://www.open-open.com/lib/view/open1335003001358.html

http://www.runoob.com/mongodb/mongodb-tutorial.html

MongoDB可视化客户端工具

robomongo https://robomongo.org/


相关实践学习
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
相关文章
|
4月前
|
NoSQL MongoDB
MongoDB入门-sort和投影
这篇文章介绍了MongoDB中的排序(sort)和投影(projection)操作,通过示例代码展示了如何使用这些功能来控制查询结果的排序顺序和返回的字段。
40 3
MongoDB入门-sort和投影
|
4月前
|
NoSQL MongoDB
MongoDB入门-MongoDB的CURD语句练习
这篇文章提供了MongoDB的CURD操作的练习,涵盖了插入、查询、更新和删除数据的基本命令,并通过具体示例展示了如何在MongoDB中执行这些操作。
50 2
|
2月前
|
存储 JSON NoSQL
MongoDB常用命令
MongoDB常用命令
40 1
MongoDB常用命令
|
3月前
|
存储 NoSQL MongoDB
MongoDB入门级别教程全(Windows版,保姆级教程)
一份全面的MongoDB入门级教程,包括在Windows系统上安装MongoDB、使用MongoDB Shell和Compass GUI进行数据库操作,以及MongoDB的基本数据类型和查询技巧。
126 2
MongoDB入门级别教程全(Windows版,保姆级教程)
|
3月前
|
NoSQL MongoDB 数据库
MongoDB是一个NoSQL数据库,有着多种不同的命令和操作。以下是一些常见的MongoDB命令:
一些常用的MongoDB命令,如数据库和集合的管理、数据的插入、查询、更新、删除以及聚合操作等。
37 1
|
4月前
|
SQL NoSQL 安全
MongoDB命令汇总
这篇文章提供了一个MongoDB命令的汇总,包括数据库操作、DDL和DML命令、安全管理、数据备份恢复、远程连接管理和聚合操作等。
63 2
|
5月前
|
NoSQL BI 数据处理
【超实用攻略】MongoDB 聚合框架:从入门到精通,带你解锁数据处理新姿势!
【8月更文挑战第24天】MongoDB是一款以其灵活性和高性能闻名的NoSQL数据库。其强大的聚合框架采用管道式处理,允许用户定义多个数据处理阶段如过滤、分组等。本文通过示例数据库`orders`和`products`,演示如何利用聚合框架计算各产品的总销售额。示例代码展示了使用`$lookup`连接两集合、`$unwind`打平数组及`$group`按产品ID分组并计算总销售额的过程。这突显了聚合框架处理复杂查询的强大能力,是进行数据分析和报表生成的理想选择。
61 3
|
5月前
|
存储 JSON NoSQL
3-MongoDB常用命令
本文档介绍MongoDB中关于文章评论数据的操作命令。首先定义了一个名为`articledb`的数据库及评论数据结构,包括评论ID、文章ID、内容、用户ID、昵称、创建时间、点赞数、状态等字段。随后详细讲解了数据库与集合的创建、选择、删除等基础操作,并提供了具体示例。此外,还介绍了文档的增删改查等基本CRUD操作,包括单个文档和批量文档的插入、查询、更新和删除的方法及参数说明。文档进一步解释了如何进行投影查询、批量更新以及使用`$inc`运算符来增量更新数值字段。最后,讲解了如何进行分页查询和排序操作,帮助用户高效管理大量评论数据。
|
5月前
|
持续交付 jenkins C#
“WPF与DevOps深度融合:从Jenkins配置到自动化部署全流程解析,助你实现持续集成与持续交付的无缝衔接”
【8月更文挑战第31天】本文详细介绍如何在Windows Presentation Foundation(WPF)项目中应用DevOps实践,实现自动化部署与持续集成。通过具体代码示例和步骤指导,介绍选择Jenkins作为CI/CD工具,结合Git进行源码管理,配置构建任务、触发器、环境、构建步骤、测试及部署等环节,显著提升开发效率和代码质量。
102 0
|
6月前
|
JSON NoSQL 关系型数据库
MongoDB常用命令大全,概述、备份恢复
MongoDB常用命令大全:服务启动停止、查看状态、备份;数据库相关,集合操作,文档操作,其他常用命令;数据备份恢复/导入导出——mongodump、mongorestore;MongoDB与SQL比较