mongo操作

由于在dos 下操作mongodb 很不方便 所以我推荐大家使用mongodb 的可视化工具robomongo 这个是robomongo的下载网址

https://robomongo.org/download

不过关于dos 下的操作 还是希望大家了解一下

在操作前需要启动mongodb数据库服务

1.首先打开dos窗口,然后选择路径到你的安装路径下的bin目录(我的路径是的D:mongo\mongodb\bin)

2.然后输入启动命令(D:mongo\data\db 是我的数据库文件的目录前边两个 – 不能少) mongod –dbpath D:mongo\data\db

3.回车dos界面出现 12701 的字样说明服务启动成功了如图所示
这里写图片描述
服务启动成功后 就需要操作了。这时候我们需要再打开一个dos窗口(服务启动的窗口不要关闭)找到安装路径(我的安装路径 为 D:mongo\mongodb\bin) 执行 mongo 此时第一个dos窗口(也就是启动服务的窗口会显示)

1 <1 connectionnow open> 字样说明此时链接数据库成功

操作数据库的dos 窗口就可以继续进行操作 ,例如查看所有数据库结果如图
这里写图片描述

也可以创建一个bat文件,不用每次都要敲击这些命令。创建*.bat,在里面输入

start mongod –dppath=”F:\MongoDB\Server\3.2\db”

就可以了,双击它就相当于在DOS下输入命令。

我们在启动MySQL的时候是通过net start mysql和net stop mysql来开启和关闭的,那么是否能使用net start MongoDB和net stop MongoDB来启动和关闭呢?是可以的

首先,目录logs和mongod.cfg,如
这里写图片描述

mongod.cfg里面为:

logpath=F:\MongoDB\Server\3.2\logs\mongod.log
dbpath=F:\MongoDB\Server\3.2\db

然后在DOS命令里输入:

sc.exe create MongoDB binPath= “\”F:\MongoDB\Server\3.2\bin\mongod.exe\” –service –config= \”F:\MongoDB\Server\3.2\mongod.cfg\”” DisplayName= “MongoDB” start= “auto”

回车就会看到

[sc] Create Service 成功

这个时候就可以使用net start MongoDB和net stop MongoDB来启动跟关闭mongo服务了。

下边是

基本操作:显示所有数据库:show dbs 用数据库:use xxx

    创建集合 db.createCollection("集合名称",{capped:true,size:100000})

基本步骤:

新建数据库(db) :use student

新建集合(Collection) db.createCollection(“集合名称”);

可以新建文档:(document) document={“1”:”2”,”3”:”4”}

查看所有数据库:show dbs;

查看当前数据库下的所有集合:db.printCollectionStats();

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

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

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

四.查询:

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条

五.更新操作
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"}})

六.删除
db.集合名称.remove(where);

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

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

七.操作符
(>) 大于 - gt ---db.student.find({"sno":{" gt ---db.student.find({"sno":{" gt”:2}})

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

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

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

八.一些操作
db.集合名称.Count(where); —显示满足条件的条数—db.student.count({“sno”:{$type:1}});

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

九.管理
查看collection数据的大小

      db.集合名称.dataSize()



      #查看colleciont状态



      db.集合名称.stats()



      #查询所有索引的大小



      db.集合名称.totalIndexSize()

.与SQL对照

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)));( g t ” , 50 ) ) ) ; ( gt : > ; gte:>=; g t e :>= ; lt : < ; lte:<=; l t e :<= ; 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’

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值