zoukankan      html  css  js  c++  java
  • MongoDB基本用法

    MongoDB是一个基于分布式文件存储的开源数据库系统。将数据存储为一个文档,数据结构由键值(key=>value)对组成。

    MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。

    启动MongoDB服务

    cmd进入F:MongoDB3.4in目录下,输入启动命令:mongod --dbpath F:MongoDBdatadb,出现27017字样说明服务启动成功

    可能遇到的报错:shutting down with code:100

    1.管理员启动:win+x,然后A键,启动cmd

    2.将MongoDB服务设置成Windows服务:

    mongod --dbpath="F:MongoDBdb" --logpath="F:MongoDBLogmongod.log" --logappend --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install

    3.删除文件mongod.lock和storage.bson

     或者计算机管理-服务-启动

    基本操作语法

     1 #创建数据库,要显示的数据库,需要插入至少一个文件
     2 use testDB
     3 #创建集合,options(可选)指定有关内存大小和索引选项,在MongoDB中,不需要创建集合。当插入一些文件 MongoDB 自动创建的集合
     4 db.createCollection("col", options)
     5 #删除数据库
     6 db.dropDatabase()
     7 #删除集合
     8 db.collection.drop()
     9 
    10 #插入数据
    11 db.testDB.insert({"name":"菜鸟教程"})
    12 db.col.insert({title: 'MongoDB 教程', 
    13     description: 'MongoDB 是一个 Nosql 数据库',
    14     by: '菜鸟教程',
    15     url: 'http://www.runoob.com',
    16     tags: ['mongodb', 'database', 'NoSQL'],
    17     likes: 100
    18 })
    19 #插入文档 使用 insert() 或 save() 方法向集合中插入文档
    20 document=({title: 'MongoDB 教程', 
    21     description: 'MongoDB 是一个 Nosql 数据库',
    22     by: '菜鸟教程',
    23     url: 'http://www.runoob.com',
    24     tags: ['mongodb', 'database', 'NoSQL'],
    25     likes: 100
    26 });
    27 db.col.insert(document)
    28 db.col.save(document)  #如果不指定 _id 字段 save() 方法类似于 insert() 方法。如果指定 _id 字段,则会更新该 _id 的数据。
    29 
    30 #查询文档
    31 db.mycol.find().pretty()
    32 db.mycol.find({key1:value1, key2:value2}).pretty()
    33 db.mycol.find({$or: [{key1: value1}, {key2:value2}]}).pretty()
    34 
    35 db.mycol.find({"by":"tutorials yiibai","title": "MongoDB Overview"}).pretty()
    36 db.mycol.find({$or:[{"by":"yiibai"},{"title": "MongoDB Overview"}]}).pretty()
    37 db.mycol.find("likes": {$gt:10}, $or: [{"by": "yiibai"}, {"title": "MongoDB Overview"}] }).pretty()
    38 
    39 #更新文档,默认将只更新单一的文件,来更新多个你需要设置参数置'multi' 为true
    40 db.COLLECTION_NAME.update(SELECTIOIN_CRITERIA, UPDATED_DATA)
    41 
    42 db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})
    43 db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}},{multi:true})
    44 
    45 db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})
    46 db.mycol.save({"_id" : ObjectId(5983548781331adf45ec7), "title":"Yiibai New Topic", "by":"Yiibai"})
    47 
    48 #删除文档,justOne可选设置为true或1,只删除一个文件
    49 db.COLLECTION_NAME.remove(DELLETION_CRITTERIA,justOne)
    50 
    51 db.mycol.remove({'title':'MongoDB Overview'})
    52 db.mycol.remove({'title':'MongoDB Overview'},1)
    53 
    54 #查询投影,当执行find()方法,那么它会显示一个文档所有字段。要限制这一点,需要设置的字段列表值1或0。 1用来显示字段而0是用来隐藏字段
    55 db.COLLECTION_NAME.find({},{KEY:1})
    56 db.mycol.find({},{"title":1,_id:0})
    57 {"title":"MongoDB Overview"}
    58 {"title":"NoSQL Overview"}
    59 {"title":"Yiibai Overview"}
    60 
    61 #排序,1用于升序排列,而-1用于降序,默认升序
    62 db.COLLECTION_NAME.find().sort({KEY:1})
    63 db.mycol.find().sort({"title":-1})
    64 #索引
    65 db.COLLECTION_NAME.ensureIndex({KEY:1})
    66 db.mycol.ensureIndex({"title":1})

     参考:菜鸟教程

    MongDB导入导出文件

    1.导入

    示例:mongoimport -d douban -c film --type csv --headerline --file C:UsersHPDesktopcodesDATA atings.csv

    语法要点

    -d :数据库名

    -c :collection名

    --type :导入的格式默认json

    -f :导入的字段名

    --headerline :如果导入的格式是csv,则可以使用第一行的标题作为导入的字段

    --file :要导入的文件

    2.导出

    示例:mongoexport -d douban -c info -o C:UsersHPDesktopcodesDATAdouban.csv --type csv -f "_id,rate,tag,title"

    语法要点:

    -d :数据库名

    -c :collection名

    -o :输出的文件名

    --type : 输出的格式,默认为json

    -f :输出的字段,如果-type为csv,则需要加上-f "字段名"

    可能遇到的报错:SyntaxError: missing ; before statement @(shell):1:15

    解决方法再开一个cmd写,不能在运行了mongo的cmd里面,是不是很魔性的解决方法

  • 相关阅读:
    向Sql Server数据库插入中文时显示乱码的解决办法 (转)
    自定义控件开发知识点
    Win7旗舰版中的IIS配置asp.net的运行环境
    windows使用
    Visual Studio 2012自动添加注释(如版权信息等)
    3个线程彼此通知
    多线程12_张孝祥 java5读写锁技术的妙用
    多线程11_张孝祥 java5的线程锁技术
    Spring整合hibernate4:事务管理[转]
    HTML界面JQuery ajax 返回200,但走Error方法
  • 原文地址:https://www.cnblogs.com/Ryana/p/6227069.html
Copyright © 2011-2022 走看看