mongodb如何删除集合中的指定键值对

mongodb如何删除集合中的指定键值对,第1张

其实没必要删除,冗余的字段对于MongoDB的性能没有任何影响。

如果非要删除某个字段,先将这个数据整个读出来,然后修改好在更新进去。

以java的驱动为例:

DBObject dbo = dbgetCollection("test")findOne(query);//query为查询条件,查询出待修改的数据

dboremoveField("filed1"); //把待删除的字段删除掉,如field1这个键值

bgetCollection("test")update(query, dbo); //更新

建立SimpleTestjava,完成简单的mongoDB数据库 *** 作 Mongo mongo = new Mongo(); 这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。 DB db = mongogetDB(“test”); 这样就获得了一个test的数据库,

我觉得首先得根据

业务场景

来决定,无论选择哪种数据库最终都是为了解决实际问题的。其次再考虑

成本

,开发人员对数据库的

熟练度,维护难易程度。

一、业务场景

问题上说的两种数据库区别还是蛮大的,mysql是传统关系型数据库,在处理小型系统和关系型数据时有很多的优点,什么支持多语言,开源,免费等等百度上就有很多。目前很多中小型公司都是用mysql。如果数据量大,对安全性能要求高,还不差钱的公司可以选择另外一种关系型数据库Oracle。monogoDB是非关系型的nosql数据库,属于文档型数据库,存储是以json、String等key-value键值对形式。通常用的较多的nosql数据库是redis。monodb使用的少(个人觉得)。这类非关系型数据库通常用来存储一些不会经常修改的数据,用来做缓存使用。另外还有使用monogodb开发商城的购物车功能。

二、使用成本

mysql、redis、monogodb都是可以免费使用,成本应该只有服务器存储空间成本,而oracle公司使用的话是需要缴费的。

三、工程师成本

这个我觉得还是传统的关系型数据库使用的人多,相应的资料也多。用起来应该能更快上手。应该没有后端工程师不会使用mysql、oracle等关系型数据库的。

四、维护难易程度

对于数据量在百万级以内的话维护成本差不多,如果再大mysql数据库就需要使用分库分表了。后期如果数据大数据处理的话,我认为nosql数据库更有优势。

多个字段中。一个文档由一组简单的键值对组成,一个字段至少需要有一个值,但是任何字段都可以有多个值,所以文档数据库的键值对保存在多个字段中。MongoDB和CouchDB都是基于文档的NoSQL数据库类型。文档数据库又称mdocumentstore,通常用于存储半结构化数据的文档格式及其详细描述。

执行启动 *** 作后,mongodb 在输出一些必要信息后不会输出任何信息,之后就等待连接的建立,当连接被建立后,就会开始打印日志信息。 你可以使用 MongoDB shell 来连接 MongoDB 服务器。你也可以使用 PHP 来连接 MongoDB。本教程我们会使用 MongoDB shell 来连接 Mongodb 服务,之后的章节我们将会介绍如何通过php 来连接MongoDB服务。 标准 URI 连接语法: mongodb://[username:password@]host1[:port1][,host2[:port2],[,hostN[:portN]]][/[database][options]] mongodb:// 这是固定的格式,必须要指定。 username:password@ 可选项,如果设置,在连接数据库服务器之后,驱动都会尝试登陆这个数据库 host1 必须的指定至少一个host, host1 是这个URI唯一要填写的。它指定了要连接服务器的地址。如果要连接复制集,请指定多个主机地址。 portX 可选的指定端口,如果不填,默认为27017 /database 如果指定username:password@,连接并验证登陆指定数据库。若不指定,默认打开 test 数据库。 options 是连接选项。如果不使用/database,则前面需要加上/。所有连接选项都是键值对name=value,键值对之间通过&或;(分号)隔开

Redis,MongoDB,memcached,BerkeleyDB,KyotoCabinet和LevelDB数据类型可以存储键值对。根据查询相关资料信息:键值对存储是数据库最简单的组织形式。全部的编程语言都带有应用在内存中的键值对存储。

1)列出当前的数据库

MongoDB shell version: 181

connecting to: test

> show dbs -linuxidccom-

admin 003125GB

local (empty)

可以使用show dbs来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。

2) 定义新的数据库名

我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。

>use mkyongdb

switched to db mkyongdb

> show dbs

admin 003125GB

local (empty)

注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。

3)保存数据

定义一个collection,名为“users”,然后插入数据,如下:

> dbuserssave( {username:"mkyong"} )

> dbusersfind()

{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }

>

> show dbs -linuxidccom-

admin 003125GB

local (empty)

mkyongdb 003125GB

可以看到,用dbusersfind()可以找出已插入的数据。这个时候,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。

关系数据库、非关系型数据库。

1、关系数据库

特点:数据集中控制;减少数据冗余等。

适用范围:对于结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询。

2、非关系数据库

特点:易扩展;大数据量,高性能;灵活的数据模型等。

使用范围:据模型比较简单;需要灵活性更强的IT系统;对数据库性能要求较高。

扩展资料:

非关系数据库的分类:

1、列存储数据库

这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra,

HBase,

Riak。

2、文档型数据库

文档型数据库的灵感是来自于Lotus

Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可

以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB,

MongoDb

国内也有文档型数据库SequoiaDB,已经开源。

参考资料来源:百度百科-数据库

参考资料来源:百度百科-NoSQL

以上就是关于mongodb如何删除集合中的指定键值对全部的内容,包括:mongodb如何删除集合中的指定键值对、请教,在mongodb的查询中如何引用文档中的key值、数据科学家如何选择mysql、mongodb等数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9716888.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存