zoukankan      html  css  js  c++  java
  • mongodb入门

    上篇文章写了怎样安装:http://blog.csdn.net/stronglyh/article/details/46805373

    这篇来讲讲mongodb入门

    首先看服务有没有打开,打开服务有两种方式。第一种是使用dos命令:NET START MongoDB   (前提是我们安装mongodb的时候命名的服务名就是MongoDB)。另外一种方式是打开控制面板--》管理工具--》服务  然后找到MongoDB这个服务,看其是否开启状态。

    开启完成之后。先进入dos命令对话框,然后进入到mongodb安装文件夹的bin文件夹下

    这个时候。我们可能在想会不会有好几个库,oracle中是show database,然后mongodb中有所差别。mongodb中的命令是show dbs

    以下我们创建一个新的库,一般我们使用use方法就能创建一个库了

    呵呵,是不是出现了

    1:插入

     db.users.insert({name:"hhh",age:26})

    2:批量插入

    db.users.insert([{name:"tommy"},{name:"xiaoming"}])

    3:查询文档

    db.users.find();

    3.1 相等条件

    db.users.find({age:26})

    3.2 比較条件

    大于($gt)、大于等于($gte)、小于($lt)、小于等于($lte)、不等于($ne)、包括于($in)、不包括于($nin)。

    比方db.user.find({age:{$lt:30}})

    3.3 子档案

    db.mycol.find({"access.level":5});

    3.4  数组条件

    数组全然匹配:

    db.inventory.find( { tags: [ 'fruit', 'food', 'citrus' ] } );
    单个元素匹配:

    db.inventory.find( { tags: 'fruit' } );
    特定元素匹配:

    db.inventory.find( { 'tags.0' : 'fruit' } );


    3.5 复合查询

    查询inventory集合中type字段为food而且价格低于95的全部文档。

    db.inventory.find({$and:[{type: "food"},{ price: { $lt: 95 }}]});


    inventory集合中检索数量(qty)大于100或者($or)价格(price)小于9.95的全部数据。

    db.inventory.find( {
                         $or: [
                                { qty: { $gt: 100 } },
                                { price: { $lt: 9.95 } }
                               ]
                        } );


    3.6 限制条件

    limit

    db.users.find().limit(3)前三条数据

    3.7 想要的结果集

    传统的写法是结果集现实全部的字段,假设仅仅想现实当中几个字段呢-------------

    db.collection.find( 查询条件,字体条件 )
    參数:
    字段条件:JSON对象。格式=>{字段:值},值等于1时表示须要返回,0时表示不须要返回。

    举例 db.users.find({},{status:1,age:1}


    4:更新文档

    db.collection.update(query,update,{upsert:boolean,multi:boolean});

    參数:

    query:查询条件。文档,和find中的查询条件写法一致。

    update:改动内容,文档。


    upsert(可选):假设值为true,那么当集合中没有匹配文档时,创建文档。

    默认false。

    multi(可选):假设值为true,那么将更新所有符合条件的文档,否则仅更新一个文档。默认false。

    举例:

    改动年龄大于19岁的,让其状态为A

    db.users.update(

    {age:{$gt:19}},

    {$set:{status:"A"}})


    查询:岁数大于19的文档:db.users.find({age:{$gt:19}})

    我们查询到了刚才更新的那句话了


    5:单文档进行操作,命令save:db.collection.save();

    db.users.save({name: 'zhangsan', age: 25, sex: true});


    6:删除

    比方删除状态为A的

    db.users.remove({status:"A"})

    先查询一下是否存在

    db.users.find({status:"A"})

    然后之后删除语句,运行完之后运行查询语句,发现已经被删除


    6:游标

    find命令并不直接返回结果,而是返回一个结果集的迭代器,即游标。

    想要获取数据。我们能够使用next方法来遍历游标。例如以下:

    var myCursor = db.inventory.find( { type: "food" } );
    var myDocument = myCursor.hasNext() ?

    myCursor.next() : null;
     
    if (myDocument) {
        var myItem = myDocument.item;
        print(tojson(myItem));
    }
    使用forEach方法也能实现游标的遍历,例如以下:

    var myCursor =  db.inventory.find( { type: "food" } );
    myCursor.forEach(printjson);


    下一篇文章讲mongodb进阶。敬请关注



    
  • 相关阅读:
    weblogic 正常启动页面还是404
    oracle awr 生成
    jre 修改timezone 夏令时冬令时问题
    apache 2.4 配置loadbalance
    plsq 调试存储过程
    Windows怎么命令行修改文件权限
    Windows上面挂载NFS共享
    linux sar命令详解
    Tomcat Connector connectionTimeout含义和验证
    c++STL系列之Set
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5170484.html
Copyright © 2011-2022 走看看