mongoDB在java中怎么根据内嵌文档条件查询

mongoDB在java中怎么根据内嵌文档条件查询,第1张

建立SimpleTestjava,完成简单的mongoDB数据库 *** 作 Mongo mongo = new Mongo(); 这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。 DB db = mongogetDB(“test”); 这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加 *** 作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。 得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。 DBCollection users = dbgetCollection("users"); 这样就获得了一个DBCollection,它相当于我们数据库的“表”。 查询所有数据 DBCursor cur = usersfind(); while (curhasNext()) { Systemoutprintln(curnext()); } 完整源码 package comhootest; import javanetUnknownHostException; import commongodbDB; import commongodbDBCollection; import commongodbDBCursor; import commongodbMongo; import commongodbMongoException; impor 建立SimpleTestjava,完成简单的mongoDB数据库 *** 作

Mongo mongo = new Mongo();

这样就创建了一个MongoDB的数据库连接对象,它默认连接到当前机器的localhost地址,端口是27017。

DB db = mongogetDB(“test”);

这样就获得了一个test的数据库,如果mongoDB中没有创建这个数据库也是可以正常运行的。如果你读过上一篇文章就知道,mongoDB可以在没有创建这个数据库的情况下,完成数据的添加 *** 作。当添加的时候,没有这个库,mongoDB会自动创建当前数据库。

得到了db,下一步我们要获取一个“聚集集合DBCollection”,通过db对象的getCollection方法来完成。

DBCollection users = dbgetCollection("users");

这样就获得了一个DBCollection,它相当于我们数据库的“表”。

查询所有数据

DBCursor cur = usersfind();

while (curhasNext()) {

Systemoutprintln(curnext());

}

完整源码

package comhootest;

import javanetUnknownHostException;

import commongodbDB;

import commongodbDBCollection;

import commongodbDBCursor;

import commongodbMongo;

import commongodbMongoException;

import commongodbutilJSON;

/

<b>function:</b>MongoDB 简单示例

@author hoojo

@createDate 2011-5-24 下午02:42:29

@file SimpleTestjava

@package comhootest

@project MongoDB

@blog >

在MongoDB中,文档是对数据的抽象,它被使用在Client端和Server端的交互中。所有的Client端(各种语言的Driver)都会使用这种抽象,它的表现形式就是我们常说的BSON(Binary JSON )。

BSON是一个轻量级的二进制数据格式。

MongoDB能够使用BSON,并将BSON作为数据的存储存放在磁盘中。

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

1从一张表中查询符合条件的数据,复制到另一张临时表

testSrcCollection为源表

testDestCollection_20211120为临时表

UNVERIFIED:未激活

INEFFECTIVE:禁用

ACTIVE:激活

SUSPENDED:离职

MongoDB Shell Script *** 作备忘

>

我来解释一下吧。

collection其实就是关系型数据库中的table一样。通常说的“一张表”,在mongodb中就是一个collection

而shard是集群中的概念。

mongodb集群分两种:一种是Replica set,即副本集,由多个mongod组成,mongod之间存在主副关系,数据是同一份;另一种就是你说的分片,分三个角色,mongos,configserver,以及mongod,configserver存储的是元数据,通常是三个保存同一份数据,mongod实例则可以是单台mongod,也可以是一个副本集。几个mongod共同组成一大份数据。

shard其实通常是指第二种中的mongod。

实际上由于mongodb中分片是以collection为单位,因此一个shard上可以保存不同的数据。

接下来回答你的问题:

1中的理解是错的,一个shard是指一个单台mongod,或者多台mongod组成的副本集

通常是一个服务器或者服务器集群

新插入的collection?这个说话有点不对。

在建立了一个collection后,通常是要给它分片或者不分片的。

如果不分片,所有的数据,都会保存在一个shard上。

如果分片,在数据量未达到chunksize的情况下,还是会在一个shard上,当一个chunk已经饱和,则会生成新的chunk,至于新的chunk在哪个shard上,则是随机的,通常是会选择chunk最小的shard。

至于我刚才提的chunk,这个才是分片中的数据迁移基本单位。

相关文章么,楼主可以自己搜一下,mongodb官方的就很不错,不过是全英文的。

引擎的原因,只要降到2X版本就可以显示了

3x默认是wiredTiger 引擎,2x默认是mmapv1 引擎

打开MongoDB服务器,打开管理软件连接到服务器,此时如果数据库是默认条件下打开的,那么MongoVUE的collection列表是没法检测到,也没法新建的。这是因为MongoDB 32之后默认启动的是wiredTiger引擎,这个引擎和之前的引擎不同,而管理软件匹配的还是之前的引擎,所以无法使用。

此时要重新启动MongoDB服务器。启动命令是: mongod –storageEngine mmapv1 –dbpath XXXXX, 其中XXXXX是你的数据库存储路径。这样启动之后,再使用MongoVUE连接数据库服务器就可以了。

可以看到,管理软件左侧是:

这里写描述

以上就是关于mongoDB在java中怎么根据内嵌文档条件查询全部的内容,包括:mongoDB在java中怎么根据内嵌文档条件查询、MongoDB Aggregation、mongodb取不出值,折磨三个小时了,求教等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9267841.html

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

发表评论

登录后才能评论

评论列表(0条)

保存