MongoDB — 初识 (安装、启动、基本操作)

本文详细介绍MongoDB在Windows环境下的安装步骤及数据目录配置,同时提供MongoDB的基本操作命令,包括数据库管理、数据增删改查等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MongoDB

   非关系型数据库

1.1 Windows环境下安装

 官网地址:https://www.mongodb.com/download-center#community

1.2  数据目录安装

  安装成功后,目录结构如下:

MongoDB将数据目录存储在 db 目录下。但是这个数据目录不会主动创建,我们在安装完成后需要创建它。请注意,数据目录应该放在盘根目录下

 在 D盘 新建文件夹 data, 文件夹 data下新建db

1.3  命令行下运行MongoDB

cmd命令,到MongoDB安装目录bin下

执行以下命令:    mongod --dbpath d:\data\db

如执行成功,如图:

mongodb默认连接端口27017,如果出现如图的情况,可以打开http://localhost:27017查看(笔者这里是chrome),发现如图则表示连接成功,如果不成功,可以查看端口是否被占用。

至此,安装成功!! 此时服务器也为启动状态

1.4  MongoDB操作命令

服务启动成功后 就需要操作了。这时候我们需要再打开一个dos窗口(服务启动的窗口不要关闭)找到安装路径(我的安装路径 为 D:install\mongoDB\bin) 执行  mongo 此时第一个dos窗口(也就是启动服务的窗口会显示)

然后,继续在该目录下通过命令行进行查看:

操作命令:

1. 基本操作

 操作指令释义
基本操作show dbs显示所有数据库 
use  xxx选择用哪个数据库
db.createCollection("集合名称",{capped:true,size:100000})创建集合 
document={"1":"2","3":"4"}新建文档
db.printCollectionStats();查看当前数据库下的所有集合

 

2. 插入操作:

  可以先定义一个文档document ,后将文档插入到集合中。或者直接将输入插入到集合中。

  db.集合名称.insert(已定义的文档);

  db.集合名称.insert(数据);

3. 查询:

  db.集合名称.find();显示文档

  db.集合名称.find(where);

  查询姓名为字符类型的数据记录

  :$type操作符是基于BSON类型来检索集合中匹配的结果。

  db.集合名称.find({"name":{$type:2}}); 

      Double 1

        String 2

        Object 3

        Array 4

        Binary data 5

        Object id 7

        Boolean 8

         Date 9

         Null 10

         Regular expression 11

         JavaScript code 13

         Symbol 14

         JavaScript code with scope 15

         32-bit integer 16

         Timestamp 17

         64-bit integer 18

         Min key 255

         Max key 127

       db.集合名称.find({条件}).limit(10); // 满足条件的,取10条

3. 更新操作

  db.集合名称.update(where,set,未找到插入新的为true,更新多条为true);

  db.集合名称.update({"id":"1"},{"$set":{"name":"yuan","sex":"男"}},false,true);

  更新添加字段:$push

    ---db.student.update({"sno":2},{$push:{"classes":"san"}})

4. 删除操作

  db.集合名称.remove(where);

  db.集合名称.remove();删除全部记录

  db.集合名称.drop();删除全部文档(document)

5. 操作符

   (>) 大于 - $gt ---db.student.find({"sno":{"$gt":2}})

   (<) 小于 - $lt---db.student.find({"sno":{"$lt":2}})

   (>=) 大于等于 - $gte  --示例:db.student.find({"sno":{"$gte":2}});

   (<= ) 小于等于 - $lte --

6. 其他操作

   db.集合名称.Count(where); ---显示满足条件的条数---db.student.count({"sno":{$type:1}});

   db.集合名称.distinct("key"); ---得到所有key的value(去掉重复的)---db.student.distinct("sno");

  7. 管理

         查看collection数据的大小

         db.集合名称.dataSize()

         #查看colleciont状态        db.集合名称.stats()

         #查询所有索引的大小     db.集合名称.totalIndexSize()

8. MongoDB与MySQL对比

 

MongoDB

MySQL

查询全部

movies.find(new Document())

SELECT * FROM movies

条件查询

movies.Find(new Document { { "title", "Hello Esr" } });

SELECT * FROM movies WHERE title= 'foobar'

查询数量

movies.Find(new Document { { "title", "测试2" } }).Documents.Count();

SELECT COUNT(*) FROM movies WHERE `title` = 'foobar'

数量范围查询

1, movies.Find(new Document().Add("$where", new Code("this.num > 50")));

2, movies.Find(new Document().Add("num",  new Document().Add("$gt",50)));
($gt : > ; $gte : >= ; $lt : < ; $lte : <= ; $ne : !=)

3,movies.Find("this.num > 50");

4,movies.Find(new Document().Add("$where",new Code("function(x){ return this.num > 50};")));

select * from movies where num > 50

分页查询

movies.Find(new Document()).Skip(10).Limit(20);

SELECT * FROM movies  limit 10,20

查询排序语句

movies.Find(new Document()).Sort(new Document() { { "num", -1 } });

SELECT * FROM movies ORDER BY num DESC

查询指定字段

movies.Find(new Document().Add("num", new Document().Add("$gt", 50)), 10, 0, new Document() { { "title", 1 } });

select title from movies where num > 50

插入语句

movies.Insert(new Document() { { "title", "测试" }, { "resuleData", DateTime.Now } });

INSERT INOT movies (`title`, `reauleDate`) values ('foobar',25)

删除语句

movies.Remove(new Document() { { "title", "Hello Esr" } });

DELETE * FROM movies

更新语句

movies.Update(new Document() { { "title", "测试2" } }
             , new Document() { { "title", "测试11111" } });

UPDATE movies SET `title` = ‘测试1111’ WHERE `title` = '测试1111'

Linq查询

(from item in db.GetCollection("movies").Linq()
                       where ((string)item["title"]).StartsWith("Esr")
                       select item);

select * from movies where title like ‘%Esr’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值