zoukankan      html  css  js  c++  java
  • 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")
            ]
    }

  • 相关阅读:
    pat甲级 1155 Heap Paths (30 分)
    pat甲级 1152 Google Recruitment (20 分)
    蓝桥杯 基础练习 特殊回文数
    蓝桥杯 基础练习 十进制转十六进制
    蓝桥杯 基础练习 十六进制转十进制
    蓝桥杯 基础练习 十六进制转八进制
    51nod 1347 旋转字符串
    蓝桥杯 入门训练 圆的面积
    蓝桥杯 入门训练 Fibonacci数列
    链表相关
  • 原文地址:https://www.cnblogs.com/linqiuhua/p/7766426.html
Copyright © 2011-2022 走看看