大家好,又见面了,我是你们的朋友全栈君。
在操作前需要启动mongodb数据库服务
1.首先打开dos窗口,然后选择路径到你的安装路径下的bin目录(我的路径是的D:mongomongodbbin)
2.然后输入启动命令(D:mongodatadb 是我的数据库文件的目录前边两个 – 不能少) mongod –dbpath D:mongodatadb
3.回车dos界面出现 12701 的字样说明服务启动成功了如图所示
服务启动成功后 就需要操作了。这时候我们需要再打开一个dos窗口(服务启动的窗口不要关闭)找到安装路径(我的安装路径 为 D:mongomongodbbin) 执行 mongo 此时第一个dos窗口(也就是启动服务的窗口会显示)
#1 <1 connectionnow open> 字样说明此时链接数据库成功
操作数据库的dos 窗口就可以继续进行操作 ,例如查看所有数据库结果如图
也可以创建一个bat文件,不用每次都要敲击这些命令。创建***.bat,在里面输入
start mongod –dppath=”F:MongoDBServer3.2db”
就可以了,双击它就相当于在DOS下输入命令。
我们在启动MySQL的时候是通过net start mysql和net stop mysql来开启和关闭的,那么是否能使用net start MongoDB和net stop MongoDB来启动和关闭呢?是可以的
首先,目录logs和mongod.cfg,如
mongod.cfg里面为:
logpath=F:MongoDBServer3.2logsmongod.log dbpath=F:MongoDBServer3.2db
然后在DOS命令里输入:
sc.exe create MongoDB binPath= “”F:MongoDBServer3.2binmongod.exe” –service –config= ”F:MongoDBServer3.2mongod.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)
七.操作符
(>) 大于 –
(<) 小于 –
(>=) 大于等于 –
(<= ) 小于等于 – $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))); ($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’ |
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/125082.html原文链接:https://javaforall.cn