MongoDB:开始

MongoDB简介

null

术语 : MongoDB 数据库 可以称为所有集合的容器。

  • 收集 是一堆MongoDB文档。它类似于RDBMS中的表。
  • 文件 它是由田野组成的。它类似于RDBMS中的元组,但这里有动态模式。同一集合的文档不需要有相同的字段集

开始

你先 安装 MongoDB,您可以在C:ProgramFilesMongoDB(默认位置)中看到所有已安装的文件。在C:程序文件MongoDBServer3中。2在目录中,有一堆可执行文件,关于它们的简短描述如下:

mongo: The Command Line Interface to interact with the db.
mongod: This is the database. Sets up the server.
mongodump: It dumps out the Binary of the Database(BSON)
mongoexport: Exports the document to Json, CSV format
mongoimport: To import some data into the DB.
mongorestore: to restore anything that you’ve exported.
mongostat: Statistics of databases

现在,您可以开始运行MongoDB服务器了。启动命令提示符并转到安装MongoDB可执行文件的位置(C:Program FilesMongoDBServer3.2in,但此路径将来可能会更改)。只需输入“mongod”,就会弹出一个错误,说明路径datadb不存在:

image1

这意味着找不到存储C:datadb的默认路径。因此,您可以自己或使用mkdir命令创建一个目录C:datadb。您还可以使用“mongod”命令通过开关-dbpath 更改默认路径。 创建此目录后,再次运行“mongod”命令,它将在端口27017上启动服务器。

image2

现在,我们需要启动我们的客户。因此,打开另一个终端,将目录更改为MongoDB路径。只要输入“mongo”,你的客户端就会启动,试图连接到服务器。

image3

这将是交互和管理数据库的CLI。这个shell有点像JS控制台。您可以尝试使用不同的JS命令来验证这一点。既然我们的客户已经启动了,我们现在可以开始处理数据库了。我们可以看到,正在使用的数据库名为“test”。您可以使用“see dbs”查看数据库,并通过键入“use ”切换到其他数据库,如“local”。

笔记 没有现有的收藏。这可以通过键入命令“show collections”看到。

让我们先向数据库中添加一些数据。我们可以用db方法创建一个集合。createCollection(名称,{size:…,capped:…,max:…})

但我们已经创建了一个随机生成的json文件(员工数据),我们会通过键入

mongoimport --jsonArray --db test --collection employee_data < 
C:mongoJsonemployee_data.json

这将导入由数据库“test”中名为“Employee_data”的集合中给定的路径引用的Employee data json文档。

image4

现在,为了确保集合被导入,您可以在shell中键入“show collections”。可以使用count()、find()、findOne()等方法对文档进行一些非常基本的查询。 您可以看到,在每个文档中都有一个名为“_id”的字段,该字段在导入的数据中没有提供。原因是MongoDB提供了一个默认的“_id”(如果没有明确提供的话),这是一个12字节的十六进制数,可以确保每个文档的唯一性。您甚至可以更改此“_id”字段,但不建议这样做。

image5

索引: 如果查询返回多个文档,也可以使用索引。例如,db。员工数据。find()返回集合中的所有文档,但如果只需要第七个文档,只需执行db即可。员工数据。find()[6]将返回特定的文档。[注:此处索引从0开始]。

预测: 假设对于一个查询,您只需要一些特定的细节,而不是文档中的全部细节。你可以使用投影。在查询对象之后,只需将所需字段设为1,其他字段将自动设为0。但是请记住,“_id”字段总是隐式地假定为1,如果你不想看到丑陋的“_id”字段,那么你需要在投影中用“_id:0”来表示这一点

查询:

1.查找公司“极客换极客”的员工人数

> db.employee_data.find( { company= “GEEKS FOR GEEKS” } ).count()

2.显示所有名为“Sandeep Jain”的员工的详细信息

> db.employee_data.find( { name: “Sandeep Jain” }

在这里,所有与给定名称匹配的文档都会显示出来。

3.显示名为“Harshit Gupta”的员工的年龄、性别和电子邮件,但不显示其“_id”。(假设只有一名员工名叫哈希特·古普塔)。 投影的使用

> db.employee_data.find( { name: “Harshit Gupta” }, { _id:0, age:1, gender:1, email:1 } )

我们还可以将查询的输出存储到变量中,然后用它们进行有趣的查询。

4.打印所有女性员工的姓名。

> var femaleEmp = db.employee_data.find( { gender: “female” } )
for ( var i = 0 ; i < femaleEmp.count() ; i++){
print ( femaleEmp[i].name)
} 
> db.employee_data.find( { gender: "female" }, { _id:0, name:1 } )

请注意,第一个解决方案只打印出名称,而第二个解决方案以对象格式打印。

文章作者 哈希特·古普塔 : 总部位于加尔各答的Harshit Gupta是一位活跃的博客写手,对算法、技术博客、故事和个人生活体验有着浓厚的兴趣。除了热爱写作,他还喜欢编码和跳舞。目前在AMD工作,他是Geeksforgeks的活跃博客撰稿人。你可以打电话联系他 哈希特古普塔博客。wordpress。通用域名格式 .

如果您发现任何不正确的地方,或者您想分享有关上述主题的更多信息,请写下评论。

© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享