MongoDB基本用法

Posted Ryana

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MongoDB基本用法相关的知识,希望对你有一定的参考价值。

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

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

 

启动MongoDB服务

cmd进入F:\\MongoDB\\3.4\\bin目录下,输入启动命令:mongod --dbpath F:\\MongoDB\\data\\db,出现27017字样说明服务启动成功

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

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

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

mongod --dbpath="F:\\MongoDB\\db" --logpath="F:\\MongoDB\\Log\\mongod.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:\\Users\\HP\\Desktop\\codes\\DATA\\ratings.csv

语法要点

-d :数据库名

-c :collection名

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

-f :导入的字段名

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

--file :要导入的文件

 

2.导出

示例:mongoexport -d douban -c info -o C:\\Users\\HP\\Desktop\\codes\\DATA\\douban.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里面,是不是很魔性的解决方法

以上是关于MongoDB基本用法的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB基本用法

mongoDB的基本用法

MongoDB的基本用法

.net Core MongoDB用法演示

MongoDB索引的基本用法

MongoDB数据库基本用法