欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mongoDB

程序员文章站 2024-01-22 21:57:10
...

一、安装前准备

1. 下载与本机对应位数的MongoDB软件

2. 运行安装程序,选择自定义安装,目录不要带中文和空格,点下一步就好。(如:MongoDB根目录 E:\install\MongoDB)

3. 创建MongoDB数据和日志目录,MongoDB将数据目录存储在 db 目录下,但是这个数据目录不会主动创建。
  请注意,数据目录应该放在根目录下。

  根目录下创建mongoDBData,其下新建db和log文件夹,log下新建mongodb.log文件。

  mongoDB

4. 运行MongoDB服务器,必须进入到\bin目录执行:

  mongod.exe --dbpath E:\install\MongoDB\mongoDBdata\db

  如果执行成功,会输出一大串信息

5. 将MongoDB服务器作为Windows服务运行(下面命令必须是管理员权限的cmd窗口,进入\bin目录执行)

mongod.exe --bind_ip 127.0.0.1 --logpath "E:\install\MongoDB\mongoDBdata\log\mongodb.log" --logappend --dbpath "E:\install\MongoDB\mongoDBdata\db" --port 27017 --serviceName "mongoDB" --serviceDisplayName "mongoDBDisplay" --install

mongoDB

6. 进入MongoDB自带编译环境,进入\bin目录,执行mongo.exe,开始自动连接到MongoDB

二、mongoDB基本概念

    1. 文档:是一组键值(key-value)(BSON) ,文档不需要设置相同的字段, 并且相同的字段不需要相同的数据类型 。

    {"site":"www.baidu.com", "name":"百度", "age":16}

    mongoDB

    i. 文档中的键/值对是有序的。
    ii. 文档中的值不仅可以是在双引号里面的字符串, 还可以是其他几种数据类型(甚至可以是整个嵌入的文 档)
    iii. MongoDB 区分类型和大小写。
    iv. MongoDB 的文档不能有重复的键。 
    v. 文档的键是字符串。 除了少数例外情况, 键可以使用任意 UTF-8 字符。 


    2. 集合: 集合就是 MongoDB 文档组, 类似于 RDBMS的表格。

        集合的命名规则

        i.  不能为空字符串""

        ii. 不能有\0字符(空字符),这个字符表示集合名的结尾

        iii. 不能以"system."开头,为系统保留前缀

        iv. 不能含有保留字符,如$


    3. 常用几种数据类型
   mongoDB

mongoDB

三、基本noSql命令

1. 添加文档,insert() / save() 方法  db.COLLECTION_NAME.insert(document)

db.course.insert({title:"mongodb教程",desc:"nosql数据库"}))

2. 查找文档

db.course.find()

3. 插入文档的另一种方法

> document=({title:"mongodb教程",desc:"nosql数据库"})
{ "title" : "mongodb教程", "desc" : "nosql数据库" }
> db.course.insert(document)
WriteResult({ "nInserted" : 1 })

4. 更新文档

    语法:db.collection.update(

    <query>,

    <update>,

    {

        upsert: <boolean>,

        multi: <boolean>,

        writeConcern: <document>

    })

    参数说明
    mongoDB

> db.course.update({'title':'mongodb教程'},{$set:{'title':'Nosql教程'}})) //只会修改第一条找到的
> db.course.update({'title':'mongodb教程'},{$set:{'title':'Nosql教程'}},{multi:true}) //修改所有

5. 删除文档(remove)

    remove前先执行find()命令来判断执行的条件是否正确是一个好的习惯。

    语法:db.collection.remove(<query>,{

        justOne: <boolean>,

        writeConcern: <document>

    })

> db.course.find()
{ "_id" : ObjectId("5ae447db75412046fb99ba8d"), "title" : "Nosql教程", "desc" : "nosql数据库" }
{ "_id" : ObjectId("5ae448b975412046fb99ba8e"), "title" : "Nosql教程", "desc" : "nosql数据库" }
{ "_id" : ObjectId("5ae6cd5275412046fb99ba8f"), "title" : "Hello", "desc" : "helloworld" }
{ "_id" : ObjectId("5ae6cd8675412046fb99ba90"), "title" : "Hello", "desc" : "helloworld" }
{ "_id" : ObjectId("5ae6cd9375412046fb99ba91"), "title" : "Hello", "desc" : "helloworld" }
> db.course.remove({title:'Hello'}, {justOne: true})
WriteResult({ "nRemoved" : 1 })
> db.course.find()
{ "_id" : ObjectId("5ae447db75412046fb99ba8d"), "title" : "Nosql教程", "desc" : "nosql数据库" }
{ "_id" : ObjectId("5ae448b975412046fb99ba8e"), "title" : "Nosql教程", "desc" : "nosql数据库" }
{ "_id" : ObjectId("5ae6cd8675412046fb99ba90"), "title" : "Hello", "desc" : "helloworld" }
{ "_id" : ObjectId("5ae6cd9375412046fb99ba91"), "title" : "Hello", "desc" : "helloworld" }
> db.course.remove({title:'Hello'})
WriteResult({ "nRemoved" : 2 })
> db.course.find()
{ "_id" : ObjectId("5ae447db75412046fb99ba8d"), "title" : "Nosql教程", "desc" : "nosql数据库" }
{ "_id" : ObjectId("5ae448b975412046fb99ba8e"), "title" : "Nosql教程", "desc" : "nosql数据库" }
6. 条件查询
语法:db.collection.find(query, projection)
    a) query : 可选, 使用查询操作符指定查询条件
    b) projection : 可选, 使用投影操作符指定返回的键。 查询时返回文档中所有键值, 只需省略该
    参数即可(默认省略) 。
 
类似关系数据库的where的格式:
    1. 等于    {<key>:<value>}
    2. 小于    {<key>: {$lt:<value>}}
    3. 小于等于    {<key>: {$lte:<value>}}

    4. 大于    {<key>: {$gt:<value>}}
    5. 大于等于    {<key>: {$gte:<value>}}
    6. 不等于    {<key>: {$ne:<value>}}



    
















相关标签: mongoDB