zoukankan      html  css  js  c++  java
  • 启动mongoDB 以及常用操作命令

    nonsql    关系数据库

     集合      表

     文档     行

      

    启动mongoDB之前首先手动创建存放MongoDB数据文件的目录,如e:mongo_data

    执行命令  mongod --dbpath=e:mongo_data

    这样麻烦

    手动创建一个后缀名为bat的文件, 把命令 mongod --dbpath=e:mongo_data 复制进去,以后执行就可以了。

    或者把它当作系统的服务 ,启动它 在系统服务那边。

    以上操作 mongoDB的服务器已经启动了。

    mongo localhost:27017 连接 mongoDB服务器。

    MongoDB 常用操作

    mydb1 数据库  c1、user集合

    show dbs 显示所有数据库

    db   查看当前所在的数据库

    show collections 查看当前数据库中所有的集合

    show tables  查看当前数据库中所有的集合

    use mydb1                如果存在这个数据库则进入,不存在则创建这个数据库

    db.createCollection("集合名称")  显示创建集合 

    db.集合名称.insert({name:"jack",age:20}); 隐士创建集合

    db.集合名称.drop() 删除集合

    小示例:

    for(var i=0;i<10;i++){

    db.user.insert(name:"name"+i,age:i);} 添加了 10条记录

    db.user.count(); 输出 数据条数

    db.集合名称.remove()   把所有数据删除

    db.user.remove({name:"user0"}) 删除指定的人

    db.user.find() 查询所有

    db.user.find({name:"user2"}); 查询条件

    db.user.findone(); 查询文档第一个

    第一个框是查询条件。第二个框显示 那些列显示不显示,

    db.user.find({},{name:1}) 显示name 属性的  其他的属性不显示 1代表显示 0代表不显示

    db.user.find().sort({age:1}) 根据age来排序 升序

    db.user.find().sort({age:-1})根据age来排序 降序

    count统计  skip limit 分页 

    skip(i)忽略第i条,limit 一页包含几条

    第一页4条 skip(0).limit(4)

    第二页4条 skip(4).limit(4)

    第三页4条 skip(8).limit(4)

    。。。。。。。。

    db.user.find().sort({age:-1}).skip(0).limit(2).count(0) 显示 几条结果,看find()查出多少条 不管分页效果

    db.user.find().sort({age:-1}).skip(0).limit(2).count(1) 显示分页效果 

    db.user.find({age:{$gt:5}}) 查询年纪大于5的

    db.user.find({age:{$lt:5}})小于5的

    $gte  $lte  $ne可以带入以上的命令

    $all  数组中包含关系

    示例

    db.user.insert({name:"user11",age:22,post:[1,2,3,4]})

    db.user.find({post:{$all:[1,2]}})  post key值中,包含条件中的所有 [1,2]的 都查出来查出来

    关系数据库中 select* from user where id in(1,2,3)相当于 nonsql中的下面

    $in  

    db.user.find({post:{$in:[1,99]}}) 只要包含条件中的一个1 或者99 存在其中一个  就都能查出来 

    $nin 与上面取反

    关系数据库中 select* from user where id name="jack" or age=20相当于 nonsql中的下面

    $or  两个不同的条件

    db.user.find({$or:[{name:"user1"},{age:8}]}) 查询 或者的情况, 两种条件。

    $exist:1 存在

    $exist:0 不存在

    db.user.find({post:{$exists:1}}) 存在 post这个键的 

    db.c1.insert({name:"jack",age:20}); 才会真正形成数据库的文件,否则 只存在内存中的数据库。 c1是集合的名字

    db.drop.Database(); 删除数据库

    db.help() 看帮助信息

    var x=db.user.find();

    x.next(); 

    x.next();  在记录中一条一条地游走  游标

    x.hasNext();

    db.collection.update(criteria,objNew,upsert,multi)

    criteria:用于设置查询条件的对象

    objNew 用于设置更新内容的对象

    upsert:如果记录已经存在,更新它,否则新增一个记录,取值为0或1     0已经存在更新   1新增

    multi:如果有多个符合条件的记录,是否全部更新,取值为0或1      1 为更新所有的

    注意:默认情况,只会更新第一个符合条件的记录

    一般情况下后两个参数分别为0,1即:

    如果后两个参数不写 则默认是 1,0

    db.collection.update({},{},0,1);

    db.user.update({name:"user1"},{name:"abc"}) 会整条记录覆盖 把后面的age也删除

    所以这个时候应该用到 $set

    $set 更新值

    db.user.update({name:"user3"},{$set{address:"nanjing"}},0,1)

    db.user.update({name:"user3"},{$unset:{address:1}},0,1) 把address字段删除

    $inc 年龄加1

    db.user.update({name:"user4"},{$inc:{age:1}})

  • 相关阅读:
    反恐24小时[第1季]——我打赌这是我第一次写观后感
    单片机设计-带时间显示的十字路口交通灯控制系统
    ASPxGridView控件的使用
    DataRow复制一行到另一个DataTable
    参数化、检查点、关联基本理解
    录制方式及一些脚本字段信息
    参数化的一些实践
    [转载]WinXp 自动运行的设置方法
    [转载]Windows Xp中如何设置自动登录
    [转载]WinXp 自动运行的设置方法
  • 原文地址:https://www.cnblogs.com/friends-wf/p/3950104.html
Copyright © 2011-2022 走看看