• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    mongodb的写操作

    使用插入数据命令:

    >insert

    需要注意的是,如果插入一文件(现在理解,nosql 类型的db数据不能说是记录了,它是已文件作为单位,而传统型的关系型数据库,我们说是插入一条记录),如果没有带人_id,那么会自动生成一个唯一的id,这个id好比关系型数据库里的主键一样。

    如果是自己指定id,那么必须id是唯一的,这点关系型和nosql型都必须要求的;

    数据字段的名字不能包含$ 和.

    在敲了一阵发现,擦,我要是再shell里面去编写复杂的插入语句,就shell的这种一行一句,不搞死我去啊。我想它肯定是支持向bat这种批处理或者其他,看它语法和js一模一样,于是大胆猜测它使用的就是javascript,于是我就用notepad++来编辑这些插入命令,试着插入复杂的对象;

    哦,另外说一句,如果这个bios数据不存在,那么要先使用

    >use bios

    生成一个数据库,如果你不往这里插入一笔数据,mongoDB会自动删除掉这个数据库;

    所以还要插入一笔让mongodb维持这数据库的任意数据

    >db.bios.insert({a:'a'})

    编写了一个insert.js脚步,放在安装目录的js文件夹下。于是这样输入:

    >mongolocalhost:27017/bios f:\mongodb\js\insert.js

    效果如图

    可以看到,这个js脚步成功执行;

    要查询这个文档,输入命令:

    >db.bios.find({ name: { first: 'John', last: 'chen' } } );

    有了js写更多的语句,就方便多了。

    Isert语句支持多个批量插入就像下面这样:

    Insert.js 语句:

    db.bios.insert(
      [
       {
        _id: 3,
        name: { first: 'Grace', last: 'Hopper' },
        title: 'Rear Admiral',
        birth: new Date('Dec 09, 1906'),
        death: new Date('Jan 01, 1992'),
        contribs: [ 'UNIVAC', 'compiler', 'FLOW-MATIC', 'COBOL' ],
        awards: [
             {
              award: 'Computer Sciences Man of the Year',
              year: 1969,
              by: 'Data Processing Management Association'
             },
             {
              award: 'Distinguished Fellow',
              year: 1973,
              by: ' British Computer Society'
             },
             {
              award: 'W. W. McDowell Award',
              year: 1976,
              by: 'IEEE Computer Society'
             },
             {
              award: 'National Medal of Technology',
              year: 1991,
              by: 'United States'
             }
            ]
       },
       {
        _id: 4,
        name: { first: 'Kristen', last: 'Nygaard' },
        birth: new Date('Aug 27, 1926'),
        death: new Date('Aug 10, 2002'),
        contribs: [ 'OOP', 'Simula' ],
        awards: [
             {
              award: 'Rosing Prize',
              year: 1999,
              by: 'Norwegian Data Association'
             },
             {
              award: 'Turing Award',
              year: 2001,
              by: 'ACM'
             },
             {
              award: 'IEEE John von Neumann Medal',
              year: 2001,
              by: 'IEEE'
             }
            ]
       },
       {
        _id: 5,
        name: { first: 'Ole-Johan', last: 'Dahl' },
        birth: new Date('Oct 12, 1931'),
        death: new Date('Jun 29, 2002'),
        contribs: [ 'OOP', 'Simula' ],
        awards: [
             {
              award: 'Rosing Prize',
              year: 1999,
              by: 'Norwegian Data Association'
             },
             {
              award: 'Turing Award',
              year: 2001,
              by: 'ACM'
             },
             {
              award: 'IEEE John von Neumann Medal',
              year: 2001,
              by: 'IEEE'
             }
            ]
       }
      ]
    );
    db.bios.insert(
      {
       name: { first: 'John', last: 'McCarthy' },
       birth: new Date('Sep 04, 1927'),
       death: new Date('Dec 24, 2011'),
       contribs: [ 'Lisp', 'Artificial Intelligence', 'ALGOL' ],
       awards: [
            {
             award: 'Turing Award',
             year: 1971,
             by: 'ACM'
            },
            {
             award: 'Kyoto Prize',
             year: 1988,
             by: 'Inamori Foundation'
            },
            {
             award: 'National Medal of Science',
             year: 1990,
             by: 'National Science Foundation'
            }
           ]
      }
    )
    c = db.bios.find( { name: { first: 'John', last: 'McCarthy' } } );
    while((c.hasNext())) printjson(c.next())

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

    Mongo还有个save方法,这个方法同样也是插入数据。咋一样是一样的,仔细想想如果是一样的,那干嘛不统一,于是想到了ORM模式中,数据的save方法中,如果要保存的数据已存在,那么它知道是修改这个数据,如果不存在则是新增。同样,这里save也是如此。

    如果save方法带了_id那么,如果数据库中存在了此_id的文档,那么,会修改原有数据,如果没有,则新增,所以,不带_id的save方法和insert是一样的,但是Insert方法如果插入的是相同的Id,那么是不会插入的;

    更新操作,传统的数据库更新操作,必须是更新的数据已经存在,要不然你想,你数据记录都不在便要更新,这不扯淡吗,但是,mongodb却可以这样,如果要更新的数据不存在,那么便插入这文档数据;

    更新语法:

    db.collection.update(query>,update>, { upsert: true } )

    如果是更新具体某个,那么带_id的save方法同样可以完成更新任务;

    查询可发现改变的数据:

    >c =db.bios.find( { name: { first: 'update', last: 'update' } } );
    >while((c.hasNext()))printjson(c.next())

    总结

    以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

    您可能感兴趣的文章:
    • Python实现读取SQLServer数据并插入到MongoDB数据库的方法示例
    • Python实现批量读取图片并存入mongodb数据库的方法示例
    • mongoDB 实现主从读写分离实现的实例代码
    • python读取json文件并将数据插入到mongodb的方法
    • 了不起的node.js读书笔记之mongodb数据库交互
    • mongodb与sql关系型数据比较
    • mongodb使用c#驱动数据插入demo
    • c#操作mongodb插入数据效率
    • mongodb实现数组对象求和方法实例
    • Mongodb读数据操作
    上一篇:mongodb与sql关系型数据比较
    下一篇:Mongodb读数据操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    mongodb的写操作 mongodb,的,写,操作,mongodb,