MongoDB

>>文档:

MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型

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

>>集合:

集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。

比如将不同数据结构的文档插入到集合中:

{"site":"www.baidu.com"}
{"site":"www.google.com","name":"Google"}
{"site":"www.runoob.com","name":"菜鸟教程","num":5}

>>启动mongodb :

sudo   service   mongod   start

>>验证mongodb是否已经成功启动:

cat   /var/log/mongodb/mongod.log

或者

ps   -aux|grep   mongod

>>停止mongodb:

sudo  service mongod stop

>>重启mongodb:

sudo  service mongod restart

>>开始使用mongodb:

[root@localhost ~]# mongo

> show dbs; ## 查看数据库

> db.version(); ## 查看数据库版本

> db.help();## 常用命令帮助

>>创建数据库

use database_name   如果数据库名不存在,则创建一个数据库,否则返回已经创建好的数据库。数据库创建好后直接转向创建好的数据库。但必须插入文档,数据库才显示出来,空的数据库是不显示出来的。

>>查看当前数据库

db

>>显示数据库列表

show  dbs

>>向数据库插入数据

db.items.insert({"name":"helloworld!"})

>>mongodb中默认数据库是test,如果您还没有创建过任何数据库,则集合/文档将存储在test数据库中。

>>删除数据库

db.dropDatabase()  删除当前所选数据库,如果没有选择,则默认删除test数据库

所以删除数据库:先选择数据库,后删除

>use newdb     

switched to db newdb

>db.dropDatabase()

>{ "dropped" : "newdb", "ok" : 1 }

>

>>检查创建的集合

show   collections

在 MongoDB 中,不需要创建集合。当插入一些文档时,MongoDB 会自动创建集合。

>>db.newcollection.insert({"name" : "yiibaitutorials"})

>>创建集合

db.createCollection(name,options)      name:集合名,必须有。 options:可选参数

>>删除集合

db.collection.drop() 

删除名称为 mycollection 的集合。

>db.mycollection.drop()

true   删除成功,返回true.删除失败,返回false

==========================================================================

在集合中插入文档

insert()

第一种方式:

db.COLLECTION_NAME.insert(document)      如果集合名没有创建,数据库会自动创建,然后将文档加入集合。

在插入文档时,如果没有指定id参数,mongodb会为此文档分配一个唯一的ObjectId

在单个查询中插入多个文档,可以在insert()命令中传递文档数组。如下所示

> db.mycollection.insert([ {

_id: 101,

title: 'MongoDB Guide',

description: 'MongoDB is no sql database',

by: 'yiibai tutorials',

url: 'http://www.yiibai.com',

tags: ['mongodb', 'database', 'NoSQL'],

likes: 100 },

{ _id: 102,

title: 'NoSQL Database',

description: "NoSQL database doesn't have tables",

by: 'yiibai tutorials',

url: 'http://www.yiibai.com',

tags: ['mongodb', 'database', 'NoSQL'],

likes: 210,

comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2017,11,10,2,35), like: 0 } ] },

{ _id: 104,

title: 'Python Quick Guide',

description: "Python Quick start ",

by: 'yiibai tutorials', url: 'http://www.yiibai.com',

tags: ['Python', 'database', 'NoSQL'],

likes: 30,

comments: [ { user:'user1', message: 'My first comment', dateCreated: new Date(2018,11,10,2,35), like: 590 } ]

}])

批量插入将返回一个 带有操作状态的BulkWriteResult 对象

文档:文档时一组键值对,MongoDB 的文档不需要设置相同的字段,并且相同的字段不需要相同的数据类型。

第二种方式:

save()

db.post.save(document)    如果不在文档中指定_id,那么save()方法将与insert()方法一样自动分配ID的值。如果指定_id,则将以save()方法的形式替换包含_id的文档的全部数据。

第三种方式:

db.collection.insertOne()    将单个文档插入到集合中,如果文档没有指定_id字段,MongoDB会自动将_id字段与ObjectId值添加到新文档。

比如:

db.inventory.insertOne( { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } } )

第四种方式:

db.collection.insertMany()   将多个文档插入到集合中 ,如果文档没有指定_id字段,MongoDB会向每个文档添加一个ObjectId值的_id字段。

比如:

db.inventory.insertMany([

{ item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },

{ item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },

{ item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }

])

执行结果:

{
        "acknowledged" : true,
        "insertedIds" : [
                ObjectId("59f96cd9c5a5e6d28faf5730"),
                ObjectId("59f96cd9c5a5e6d28faf5731"),
                ObjectId("59f96cd9c5a5e6d28faf5732")
        ]
}

原文地址:https://www.cnblogs.com/linqiuhua/p/7766426.html