MongoDB 文档【行】
⒈MongoDB是一款文档型的Nosql数据库,存入数据库的数据是以文档为原型的,也就相当于传统关系型数据库中行
⒉文档是一组键值对(key-value)。MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型,这与关系型数据库有很大的区别,也是 MongoDB 非常突出的特点。
⒊文档需要注意的是:
- 文档中的键/值对是有序的。
- 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
- MongoDB区分类型和大小写。
- MongoDB的文档不能有重复的键。
- 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
⒋文档键命名规范:
- 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
- .和$有特别的意义,只有在特定环境下才能使用。
- 以下划线"_"开头的键是保留的(不是严格要求的)。
⒌文档的数据结构和 JSON 基本一样,但它是以BSON格式进行存储的。BSON 是一种类似 JSON 的二进制形式的存储格式,是 Binary JSON 的简称。
⒍一些常见用法
1.插入文档(插入一行数据),向集合中插入文档时,如果该集合在该数据库中不存在, MongoDB 会自动创建该集合并插入文档。
db.collectionName.insert(document)
db.collectionName.save(document)
示例:
db.col.insert({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'coreqi', url: 'http://www.coreqi.cn', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
我们也可以将文档定义为一个变量
document=({title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'coreqi', url: 'http://www.coreqi.cn', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 });
然后再执行插入操作
db.col.insert(document)
2.更新文档
1.update()【用于更新已经存在的文档】
db.collection.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> } )
参数说明:
-
- query : update的查询条件,类似sql update查询内where后面的。
- update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
- upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
- multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
- writeConcern :可选,抛出异常的级别。
示例:
首先,我们先插入一条数据
db.col.insert({ title: 'MongoDB 教程', description: 'MongoDB 是一个 Nosql 数据库', by: 'Coreqi', url: 'http://www.coreqi.cn', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
然后,我们使用update()方法来更新文档的标题(title)
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'去他娘的MongoDB'}})
这条语句只会修改第一条发现的文档,如果你要修改多条相同的文档,则需要设置 multi 参数为 true。
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'去他娘的MongoDB'}},{multi:true})
2.save()方法,save() 方法通过传入的文档来替换已有文档。
db.collection.save( <document>, { writeConcern: <document> } )
参数说明:
-
-
- document : 文档数据。
- writeConcern :可选,抛出异常的级别。
-
示例:在下面的实例中我们替换了 _id 为 56064f89ade2f21f36b03136 的文档数据:
db.col.save({ "_id" : ObjectId("56064f89ade2f21f36b03136"), "title" : "MongoDB", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "Coreqi", "url" : "http://www.coreqi.cn", "tags" : [ "mongodb", "NoSQL" ], "likes" : 110 })
3.删除文档
MongoDB使用remove()函数用来移除集合中的数据。
2.查看集合中所有文档(查看表中的数据行数据)
db.collectionName.find()