今天小编就为大家分享一篇关于mongodb的写操作,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

使用插入数据命令:

>insert

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

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

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

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

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

>use bios

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

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

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

pk10开奖结果编写了一个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方法同样可以完成更新任务;

pk10开奖结果查询可发现改变的数据:

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

总结

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

最新资讯
5G手机三季度排队亮相 但年内渗透率不足整体市场1%

5G手机三季度排队亮相

5G手机的“百米冲刺”到了最后阶段,第一波5G手机出货潮
AI作曲颠覆音乐产业 95%从业者可能被取代

AI作曲颠覆音乐产业 9

过去几年,许多科技公司、研究机构和个人都在探索利用AI
外管局关注跨境支付“无证驾驶”

外管局关注跨境支付“

跨境支付市场近期不平静,对于“无证驾驶”机构而言,可谓
苹果突然在印度停售多款手机

苹果突然在印度停售多

印度停售iPhone SE、iPhone 6、iPhone 6Plus 和 iPhon
5G时代须警惕短视频侵权大爆发

5G时代须警惕短视频侵

随着5G时代的到来,短视频或将迎来新一轮爆发。
蔚来拟拆分NIO Power独立融资

蔚来拟拆分NIO Power

蔚来将拆分旗下能源补给服务NIO Power,寻求在今年四季
最新文章
mongo中模糊查询的综合应用

mongo中模糊查询的综

这篇文章主要给大家介绍了关于mongo中模糊查询的相关
mongoDB中聚合函数java处理示例详解

mongoDB中聚合函数jav

这篇文章主要给大家介绍了关于mongoDB中聚合函数java
MongoDB实现自动备份的全过程记录

pk10开奖结果MongoDB实现自动备份

这篇文章主要给大家介绍了关于MongoDB实现自动备份的
Ubuntu 18.04安装MongoDB 4.0 的教程详解

Ubuntu 18.04安装Mong

这篇文章主要介绍了Ubuntu 18.04安装MongoDB 4.0 的教
MongoDB副本集丢失数据的测试实例教程

MongoDB副本集丢失数

这篇文章主要给大家介绍了关于MongoDB副本集丢失数据
MongoDB的基本特性与内部构造的讲解

MongoDB的基本特性与

今天小编就为大家分享一篇关于MongoDB的基本特性与内
pk10开奖结果_5y77C7z pk10开奖结果_mZbBhg pk10开奖结果_Rl7R1kU pk10开奖结果_Vhiis pk10开奖结果_4HCGrI0 pk10开奖结果_UAxqD pk10开奖结果_zacwXe pk10开奖结果_pU5ccq4 pk10开奖结果_Mm5mt pk10开奖结果pk10开奖结果_2Pc3nNX