zoukankan      html  css  js  c++  java
  • 试水MongoDB

    1)安装好后启动mongodb 服务

     

    1_1) 建立data/db     ,保证至少有3g大小的盘

    1_2) 建立log 文件夹 

         

    1_3)配置文件

     

    内容,指定数据存放位置、日志文件位置

    dbpath=f:mongodbdatadb

    logpath=f:mongodblogmongo.log

    1_3) 指定数据库路径 

     

    1_4) 打开

    cd/d F:mongdb/bin

    Mongod --dbpath=f:mongodbdatadb 

    Mongo

    2)连接

    cd/d F:mongdb/bin

    Mongo

    查看是否打开成功:

    Localhost:27017

    3)创建用户

    db.addUser(“UserName”,”passwork”,true)

    4)Robomongo 登录本地芒果

    Localhost:27017

    Username:Wgr

    Passwork:Wgr123

    DB:test

    5)插入数据

    Var single ={“name”:”wgr”,”address”:”guangzhou longgui”,”favourate”[“apple”,”banana”]}

    Db.user.insert(single)

    6)查看:

    学习地址:

    http://www.cnblogs.com/think_fish/p/3422307.html

    6_1)等于

    Db.user.find({“name”:”wgr”})

    6_2)大于

    db.user.find({"age":{$gt:30}})

    6_3)不等于

    $ne 不等于 noe equals

    db.collection.find({age:{$ne:18}})  ;//年龄不等于18

    6_4)验证一个元素是否存在

    这个语法有点绕

    db.collection.find({title:{$exists:true}});  //如果记录中有包含title属性的全部返回

    db.collection.find({title:{$exists:false}}); //如果记录中有包含title属性的全部不返回,不包含title属性的全部返回

    6_5)正则表达式

    db.user.find({"name":/W/i})

    mongo支持正则表达式,如:

    db.customers.find( { name : /acme.*corp/i } ); // 后面的i的意思是区分大小写

    支持正则表达式查询让mongDb具有相当强大的查询功能,不过同时需要开发者比较了解正则表达式

    6_6)查询数据内的值

    下面的查询是查询colorsred的记录,如果colors元素是一个数据,数据库将遍历这个数组的元素来查询。db.things.find( { colors : "red" } );

    6_7$elemMatch

    如果对象有一个元素是数组,那么$elemMatch可以匹配内数组内的元素:

    > t.find( { x : { $elemMatch : { a : 1, b : { $gt : 1 } } } } ) 


    { "_id" : ObjectId("4b5783300334000000000aa9"), 
    "x" : [ { "a" : 1, "b" : 3 }, 7, { "b" : 99 }, { "a" : 11 } ]
    }$elemMatch : { a : 1, b : { $gt : 1 } } 所有的条件都要匹配上才行。

    注意,上面的语句和下面是不一样的。

    > t.find( { "x.a" : 1, "x.b" : { $gt : 1 } } )
    $elemMatch是匹配{ "a" : 1, "b" : 3 },而后面一句是匹配{ "b" : 99 }, { "a" : 11 } 

    测试:

    db.user.find({"name":/zhux/i},{"family.son":/xi/i})

    db.user.find({"name":/zhux/i},{"family.wife":/peng/i},{"family.son":/xi/i})

    6_8)  查询嵌入对象的值
    db.postings.find( { "author.name" : "joe" } );

    注意用法是author.name,用一个点就行了。更详细的可以看这个链接: dot notation

    举个例子:

    > db.blog.save({ title : "My First Post", author: {name : "Jane", id : 1}})

    如果我们要查询 authors name Jane我们可以这样:

    > db.blog.findOne({"author.name" : "Jane"})

    如果不用点,那就需要用下面这句才能匹配:

    db.blog.findOne({"author" : {"name" : "Jane", "id" : 1}})

    下面这句:

    db.blog.findOne({"author" : {"name" : "Jane"}})

    是不能匹配的,因为mongodb对于子对象,他是精确匹配。 

    6_9) 元操作符 $not 取反

    如:

    db.customers.find( { name : { $not : /acme.*corp/i } } );db.things.find( { a : { $not : { $mod : [ 10 , 1 ] } } } ); 

    Test

    /*var  a={"name":"zhuxi","age":60,"family":{"wife":"pengliyuan","son":"xiaoli"}}

    db.user.find({"name":/zhux/i},{"family.wife":/peng/i},{"family.son":/xi/i})

    db.user.insert(a);

    var  a={"name":"zhuxi","age":60,"detail":[{"wife1":"pengliyuan"},{"son1":"xiaoli"}]}

    db.user.insert(a);

    --对象内元素为单元素(数组)的查法

    db.user.find({"family.wife":/peng/})

    "family" : 

    {

        "wife" : "pengliyuan",

        "son" : "xiaoli"

    }

    --对象内元素为多元素(数组)的查法

    db.user.find({"detail":{$elemMatch:{"wife1":/peng/i}}})

    "detail" : 

        {

            "wife1" : "pengliyuan"

        }, 

        {

            "son1" : "xiaoli"

        }

    ]

    */

  • 相关阅读:
    定时器QTimer
    QDoubleSpinBox浮点型数字调节框
    pyqt5-步长调节器
    字体选择框QFontComboBox
    组合框-下拉选择框QCombox
    复选框QCheckBox
    CMake学习记录--list(列表操作命令)
    CMake命令之list
    make的link_directories命令不起作用
    Linux平台用C++实现事件对象,同步线程
  • 原文地址:https://www.cnblogs.com/Ellfelo/p/mongodb.html
Copyright © 2011-2022 走看看