使用插入数据命令:
>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())
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
在“普通的”MongoDB中,对DB执行写入操作的方法(如.insertone()或.deleteOne())将分别返回或。这些对象将返回的布尔值和(如果适用)。这允许我们确保写操作成功。 但是,通俗地说,返回的是void: MongoOperations.Class 那么问题是,我们如何检索得到的和对象? 正在使用pom依赖项
主要内容:建立连接并选择数据库,创建集合,插入文件,查找所有文件,更新文档,删除文档想要在 PHP 中使用 MongoDB,您需要为 PHP 安装 MongoDB 的驱动,您可以从 PHP 官网( https://pecl.php.net/package/mongodb)下载最新版的 MongoDB 驱动。下载成功后解压得到的压缩包,并将其中的 php_mongo.dll 文件移动到您的 PHP 扩展目录中(默认为“ext”),然后在您的 PHP 配置文件(php.ini)文件中
主要内容:环境配置,连接数据库,创建集合,获取/选择集合,插入文档,查询文档,更新文档,删除文档,删除集合,列出所有集合MongoDB 不仅可以在命令行窗口(CMD)中运行,它还可以与编程语言配合使用,本节我们就来介绍一下在 Java 中如何使用 MongoDB。 环境配置 想要在 Java 程序中使用 MongoDB,需要确保您的电脑上已经安装了 MongoDB,并搭建好了 Java 的环境。您可以查看《 Java 教程》来了解不同系统下 Java 的安装教程。 另外您还需要确认安装了 Mon
本文向大家介绍golang操作mongodb的方法,包括了golang操作mongodb的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了golang操作mongodb的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的Go语言程序设计有所帮助。
主要内容:常用的原子操作命令维护原子性的推荐方法是保留所有相关信息,并将这些信息使用嵌入式文档的形式更新到文档中,这将确保单个文档的所有更新都是原子的。假设我们已经创建了一个名为 productDetails 的集合,并在其中插入了一个文档,如下所示: 在上面的文档中,我们将购买产品的客户的信息嵌入到 product_bought_by 字段中。当有新客户购买该产品时,我们首先会使用 product_available 字段
本文向大家介绍C# 操作 MongoDB的示例demo,包括了C# 操作 MongoDB的示例demo的使用技巧和注意事项,需要的朋友参考一下 今项目使用Mongodb,C#操作MongoDB使用MongoDB.Driver.dll库(Nuget),写了个小Demo,如下: 注:时间类型的属性,存入MongoDB后会比北京时间少8小时,是由于默认写入的是世界标准时间,可在时间类型属性上添加 [Bs