• mongodb的基本操作


    mongodb操作命令行形式

    进入mongodb的命令行

    保证安装并成功启动服务
    启动服务用

    mongod --dbpath .
    

    进入mongodb客户端命令

    mongo
    

    查看当前存在的所有数据库

    > show dbs
    admin        0.000GB
    config       0.000GB
    local        0.000GB
    spider_data  0.002GB
    

    可以看到我有四个库admin,config,local,spider_data(这是我之前创建好的你的电脑没有这个。)
    local数据库主要存储副本集的元数据,admin数据库则主要存储MongoDB的用户、角色等信息。慎用这三个库,一般情况下我们需要创建一个符合自己业务逻辑的库。像我就创建了spider_data这个库,下面我们看看如何创建数据库。

    创建数据库

    如果数据库不存在,则创建数据库,否则切换到指定数据库。
     这里我们是做一个测试所以用test_db作为测试数据库的名字。

    > use test_db
    switched to db test_db
    > 
    

    输入db可以查看当前的数据库名.

    > db
    test_db
    > 
    

    此时输入show dbs会发现还是原来的几个库,我们给新创建的库,加入数据就可以显示了。

    数据插入操作

    如果集合不存在,插入操作将创建集合。
    在集合中,具有唯一主键_id。如果在插入文件中未声明_id;MongoDB将自动使用ObjectIds作为_id

    MongoDB提供了保存数据的方法一共有三个:

    1. db.collection.insertOne() 插入一条
    2. db.collection.insertMany() 插入多条
    3. db.collection.insert() 插入一条或者多条
      其中collection就是表名,这里我们在上面的test_data库里创建test这个表并插入数据。
      首先我们使用insertOne插入一条数据
    > db.test.insertOne({'id':11,'name':'daming1m'})
    {
    	"acknowledged" : true,
    	"insertedId" : ObjectId("5bb98a36cb094f7674e574ea")
    }
    

    使用inserMany插入多条,类型列表字典

    > db.test.insertMany([{'id':1,'name':'daming1m'},{'id':2,'name':'lisa1m'}])
    {
       "acknowledged" : true,
       "insertedIds" : [
       	ObjectId("5bb989a4cb094f7674e574e8"),
       	ObjectId("5bb989a4cb094f7674e574e9")
       ]
    }
    

    使用insert可以插入一条和多条

    > db.test.insert({'id':123,'name':'daming'})
    WriteResult({ "nInserted" : 1 })
    > db.test.insert({'id':1231,'name':'daming1'},{'id':1241,'name':'lisa1'})
    WriteResult({ "nInserted" : 1 })
    

    观察发现上面即使两条数据也是显示影响了一条,所以使用insert来插入多条的时候,注意json外面要使用[]

    > db.test.insert([{'id':123,'name':'daming'},{'id':124,'name':'lisa'}])
    BulkWriteResult({
    	"writeErrors" : [ ],
    	"writeConcernErrors" : [ ],
    	"nInserted" : 2,
    	"nUpserted" : 0,
    	"nMatched" : 0,
    	"nModified" : 0,
    	"nRemoved" : 0,
    	"upserted" : [ ]
    })
    

    关于insert和insertmany插入多条的操作的区别,目前不知道什么区别,有知道好心人麻烦告诉我下。

  • 相关阅读:
    ms08-067
    siem主流厂商
    技术设计
    SOC
    通过 IDE 向 Storm 集群远程提交 topology
    Storm
    java线程中Exchanger使用
    android笔记
    学习笔记 Java类的封装、继承和多态 2014.7.10
    POJ 2533 Longest Ordered Subsequence DP
  • 原文地址:https://www.cnblogs.com/c-x-a/p/9749844.html
Copyright © 2020-2023  润新知