文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

mongodb的写操作

2024-04-02 19:55

关注

使用插入数据命令:

>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'})

mongodb的写操作

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

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

效果如图

mongodb的写操作

可以看到,这个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())

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 资料下载
  • 历年真题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯