MongoDB CRUD操作中的插入实例教程_MongoDB

来源:脚本之家  责任编辑:小易  

packagecom.mkyong.core;import java.net.UnknownHostException;importcom.mongodb.BasicDBObject;importcom.mongodb.DB;importcom.mongodb.DBCollection;importcom.mongodb.DBCursor;importcom.mongodb.Mongo;importcom.mongodb.MongoException;Java+MongoDB Hello world Examplepublic class App {public static void main(String[]args){try {实例化Mongo对象,连接27017端口Mongo mongo=new Mongo("localhost",27017);连接名为yourdb的数据库,假如数据库不存在的话,mongodb会自动建立DB db=mongo.getDB("yourdb");Get collection from MongoDB,database named"yourDB从Mongodb中获得名为yourColleection的数据集合,如果该数据集合不存在,Mongodb会为其新建立DBCollection collection=db.getCollection("yourCollection");使用BasicDBObject对象创建一个mongodb的document,并给予赋值。BasicDBObject document=new BasicDBObject();document.put("id",1001);document.put("msgwww.zgxue.com防采集请勿采集本网。

温习了MongoDB的插入操作,主要使用PHP语言实践。

启动成功后,进入mongodb shell命令行,在 mongodb shell命令行 中我们可以进行数据库的访问,已经对数据库执行CRUD操作。6、添加MongoDB到Winodows服务 window服务来启动MongoDB 服务器。其实做到第5步,

目的 理解官方shell和PHP SDK操作的差异 以MySQL的思维理解MongoDB的shell,感觉差异还是很大的 理解有多少种插入操作,以及差异点 重点理解异常操作,如何看官方文档

Query.Matches(\"Title\",str);模糊查询 相当于sql中like-str可包含正则表达式如果你是编程,那使用相应的数据库驱动也包含相应的模糊查询方法。

在MongoDB中,文档是对数据的当Client端要将写入文档,使用查询等等操作时,需要将文档编码为BSON格式,然后再发送给Server端。同样,Server端的返回结果也是编码为BSON格式再放回给Client端的。

mongoDB shell

3、是标准MEAN栈(MongoDB,Express.JS,AngularJS,NodeJS)的一部分,有许多文章和教程可用 缺点: 1、学习曲线陡峭 2、大的代码库 3、无法升级到Angular2.x 摘自昨天看过的一篇汇总博客~地址贴给你,

insertMany()、insert()、insertOne()三个方法大体上是差不多的,insertMany()相当于批处理,insertOne()是插入当个,这两个函数返回的对象没有明确指示,insert()相当于批处理,如果插入的是单个文档,返回的是WriteResult对象,如果是多个文档返回BulkWriteResult对象(真正的批量操作)。

1.所谓的千万级用户,还是有很多种不同的。横向把海量数据分区存放,保证单个节点(表/库/机器/集群)数据操作性能可控。这是最考验架构师功力的地方,也是后台开发这个行当的魅力所在

如果产生异常,则会返回writeConcernErrors和writeErrors两种错误,有两个细节。

如果是批量插入,ordered是true,则遇到一个错误,后面就不返回了,反之则会继续运行,不过最终都会抛出异常。

其次遇到异常就不会返回_ids,这一点觉得特别让人难以理解,若何知晓插入了那些ID?

再次强调,对于MongoDB来说,只能保证单个文档插入是原子性的。另外MongoDB插入的文档不存在,则会自动插件文档。

db.collection.insertMany( [ <document 1> , <document 2>, ... ], { writeConcern: <document>, ordered: <boolean> })

PHP SDK

各个语言SDK和官方SHELL是差不多的,看的时候可以对照着看。

对于insertMany函数来说,如果处理正常返回的是MongoDB\InsertManyResult对象,它实际上是MongoDB\Driver\WriteResult 扩展的包装。

如果遇到异常,可以通过 MongoDB\Driver\Exception\WriteException::getWriteResult 扩展方法获取,它返回的实际上也是MongoDB\Driver\WriteResult对象。该对象的getWriteConcernError、getWriteErrors函数可以获取具体的错误信息,从而决定程序如何处理。

对于异常来说,还有其他错误类型,比如MongoDB\Exception\InvalidArgumentException、MongoDB\Driver\Exception\RuntimeException。

最后通过一个例子来说明:

$obj = $collection->insertMany( [ [ '_id' => "5f03014f73efc304f72dc6e2", 'email' => 'admin@example.com', ], [ 'username' => 'test', 'email' => 'test@example.com', ] ],[ "ordered"=>false] ); $obj->getInsertedCount(); $obj->getInsertedId();} catch (\MongoDB\Exception\InvalidArgumentExceptio $e) {} catch (\Exception $e) { $obj = $e->getWriteResult(); $data_1 = $obj->getWriteErrors(); $data_2 = $obj->getInsertedCount(); $data_3 = $obj->getUpsertedIds();}

整体上和官方文档描述没有太大的差异。

参考: https://www.php.net/mongodb-driver-writeexception.getwriteresult https://www.php.net/class.mongodb-driver-writeresult https://docs.mongodb.com/manual/reference/method/db.collection.insertMany/ https://docs.mongodb.com/php-library/v1.4/reference/method/MongoDBCollection-insertMany/

总结

到此这篇关于MongoDB CRUD操作中的插入的文章就介绍到这了,更多相关MongoDB CRUD操作插入内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

MongoDB是一个面向文档的数据2113库,目前由10gen开发并维护,它5261的功能丰富,4102齐全,完全可以替代MySQL。在使用MongoDB做产品原型的过1653程中,我们总结了MonogDB的一些亮点:使用JSON风格语法,易于掌握和理解:MongoDB使用JSON的变种BSON作为内部存储的格式和语法。针对MongoDB的操作都使用JSON风格语法,客户端提交或接收的数据都使用JSON形式来展现。相对于SQL来说,更加直观,容易理解和掌握。Schema-less,支持嵌入子文档:MongoDB是一个Schema-free的文档数据库。一个数据库可以有多个Collection,每个Collection是Documents的集合。Collection和Document和传统数据库的Table和Row并不对等。无需事先定义Collection,随时可以创建。Collection中可以包含具有不同schema的文档记录。 这意味着,你上一条记录中的文档有3个属性,而下一条记录的文档可以有10个属性,属性的类型既可以是基本的数据类型(如数字、字符串、日期等),也可以是数组或者散列,甚至还可以是一个子文档(embed document)。这样,可以实现逆规范化(denormalizing)的数据模型,提高查询的速度。图1 MongoDB是一个Schema-free的文档数据库图2是一个例子,作品和评论可以设计为一个collection,评论作为子文档内嵌在art的comments属性中,评论的回复则作为comment子文档的子文档内嵌于replies属性。按照这种设计模式,只需要按照作品id检索一次,即可获得所有相关的信息了。在MongoDB中,不强调一定对数据进行Normalize ,很多场合都建议De-normalize,开发人员可以扔掉传统关系数据库各种范式的限制,不需要把所有的实体都映射为一个Collection,只需定义最顶级的class。MongoDB的文档模型可以让我们很轻松就能将自己的Object映射到collection中实现存储。图2 MongoDB支持嵌入子文档简单易用的查询方式:MongoDB中的查询让人很舒适,没有SQL难记的语法,直接使用JSON,相当的直观。对不同的开发语言,你可以使用它最基本的数组或散列格式进行查询。配合附加的operator,MongoDB支持范围查询,正则表达式查询,对子文档内属性的查询,可以取代原来大多数任务的SQL查询。CRUD更加简单,支持in-place update:只要定义一个数组,然后传递给MongoDB的insert/update方法就可自动插入或更新;对于更新模式,MongoDB支持一个upsert选项,即:“如果记录存在那么更新,否则插入”。MongoDB的update方法还支持Modifier,通过Modifier可实现在服务端即时更新,省去客户端和服务端的通讯。这些modifer可以让MongoDB具有和Redis、Memcached等KV类似的功能:较之MySQL,MonoDB更加简单快速内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • mongodb中crud的深入讲解
  • mongodb的基本操作实例详解【服务端启动,客户端连接,crud操作】
  • springboot整合mongodb进行crud操作的两种方式(实例代码详解)
  • mongo数据集合属性中存在点号(.)的解决方法
  • mongodb中的主从同步配置和mongod相关启动命令讲解
  • mongodb安全及身份认证(实例讲解)
  • php库 查询mongodb中的文档id的方法
  • 十个提高mongodb安全性的配置技巧
  • spring boot中使用mongodb数据库的方法
  • centos7安装和卸载mongodb数据库的方法
  • nosql反模式 - 文档数据库篇
  • mongodb 数据库操作--备份 还原 导出 导入
  • mongodb 数据库的命名、设计规范详解
  • mongodb crud是什么意思
  • java操作MongoDB
  • 如何安装mongodb
  • 千万别用MongoDB?真的吗
  • idea的mongo插件把线上的数据库怎么导到本地
  • mongodb 怎么执行sql
  • 第二节 为什么用MongoDB及.NET开发入门
  • 前端开发框架有哪些?
  • 用Python 和 MongoDB 构建千万级用户的后台靠谱吗
  • java工程师面试时最看重的是什么?
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全mssqlmysqlmariadboracledb2mssql2008mssql2005sqlitepostgresqlmongodbredisaccess数据库文摘数据库其它首页mongodb中crud的深入讲解mongodb的基本操作实例详解【服务端启动,客户端连接,crud操作】springboot整合mongodb进行crud操作的两种方式(实例代码详解)mongo数据集合属性中存在点号(.)的解决方法mongodb中的主从同步配置和mongod相关启动命令讲解mongodb安全及身份认证(实例讲解)php库 查询mongodb中的文档id的方法十个提高mongodb安全性的配置技巧spring boot中使用mongodb数据库的方法centos7安装和卸载mongodb数据库的方法nosql反模式 - 文档数据库篇mongodb 数据库操作--备份 还原 导出 导入mongodb 数据库的命名、设计规范详解mongodb常用操作命令大全mongodb各种查询操作详解mongodb数据库插入、更新和删除操mongodb 数据库操作--备份 还原 mongodb插入数据的3种方法mongodb中使用distinct去重的简单mongodb整库备份与还原以及单个cmongodb查询操作限制返回字段的方浅谈mysql和mariadb区别(mariadbmongodb 实现远程连接windows下mongodb安装与配置三步走记一次mongodb中admin数据库导致的事故mongodb 快速入门windows 10下安装最新版mongodb的完整步骤mongodb模糊查询操作案例详解(类关系型数mongodb 4.0事务回滚的辛酸历程探究linux服务器下mariadb 10自动化安装部署mongodb 常用命令总结mongodb 中聚合统计计算--$sum表达式mongodb修改、删除文档的域属性实例
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved