zoukankan      html  css  js  c++  java
  • mongodb 的服务启动和基本操作命令

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

    https://robomongo.org/download

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

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

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

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

    3.回车dos界面出现 12701 的字样说明服务启动成功了如图所示

     

    服务启动成功后 就需要操作了。这时候我们需要再打开一个dos窗口(服务启动的窗口不要关闭)找到安装路径(我的安装路径 为 D:mongomongodbin) 执行  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.2inmongod.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)

    七.操作符

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

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

       (>=) 大于等于 - $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)));
    ($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’

  • 相关阅读:
    计算openlayers两点之间的距离
    node.js Tools for Visual Studio 介绍
    spring.net (3)依赖注入基础
    spring.net (2)环境搭建 对(1)例子的解释和扩充
    spring.net (1) 概念-控制反转(又名依赖注入)
    如何去定义一个jquery插件
    entityframework lamda 使用where时的注意事项
    k8s big-ip control 安装使用
    lb的keepalive问题
    firefox的fq设置图文教程- 【windows,mac通用】
  • 原文地址:https://www.cnblogs.com/wzlblog/p/6364045.html
Copyright © 2011-2022 走看看