• 关于

    更新mongo db

    的搜索结果

回答

首先介绍一下比较常用的几个类Mongo:连接服务器,执行一些数据库操作的选项,如新建立一个数据库等DB:对应一个数据库,可以用来建立集合等操作DBCollection:对应一个集合(类似表),可能是我们用得最多的,可以添加删除记录等DBObject接口和BasicDBObject对象:表示一个具体的记录,BasicDBObject实现了DBObject,因为是key-value的数据结构,所以用起来其实和HashMap是基本一致的DBCursor:用来遍历取得的数据,实现了Iterable和Iterator代码如下: import com.mongodb.*; public class Main { public static void main(String[] args) { try{ Mongo m = new Mongo("127.0.0.1"); //选择数据库,如果没有这个数据库的话,会自动建立 DB db = m.getDB("mongo"); //列出所有数据库名,不过发现,如果数据库里面是没有数据的话,并不会被列出来 System.out.println("数据库列表:"+m.getDatabaseNames()); //建立一个集合,和数据库一样,如果没有,会自动建立 DBCollection col = db.getCollection("col"); //列出所有集合名,和数据库一样,如果集合里面是没有数据的话,并不会被列出来 System.out.println("当前数据库下的集合列表:"+db.getCollectionNames()); //建立一个数据项,重复执行会多次添加一样的数据 BasicDBObject val = new BasicDBObject(); val.put("name", "凤姐"); col.save(val); //保存的数据为 //{ "_id" : "4b8de2f3053068a371e870c0" , "name" : "凤姐"} //_id是系统自动帮加上的,全局唯一 //多次加入一样的数据时,_id都是不一样的 //取得所有数据并打印出来 DBCursor ite = col.find(); while(ite.hasNext()) { System.out.println(ite.next()); } }catch(Exception error) { error.printStackTrace(); } } } 更新操作 import com.mongodb.*; public class Main { public static void main(String[] args) { try{ Mongo m = new Mongo("127.0.0.1"); DB db = m.getDB("mongo"); DBCollection col = db.getCollection("col"); System.out.println("修改前:"); showData(col); //查找所有 name=凤姐 的项,并更新 BasicDBObject old_val = new BasicDBObject(),new_val = new BasicDBObject(); old_val.put("name", "凤姐无敌"); new_val.put("name", "凤姐无敌"); col.update(old_val, new_val);//只会更新一个 //col.updateMulti(new_val, old_val)不知道怎么回事,这函数不顶用 System.out.println("修改后:"); showData(col); }catch(Exception error) { error.printStackTrace(); } } static void showData(DBCollection col) { DBCursor ite = col.find(); while(ite.hasNext()) { System.out.println(ite.next()); } } }

落地花开啦 2019-12-02 01:48:43 0 浏览量 回答数 0

问题

pymongo如何一次更新多条记录?

蛮大人123 2019-12-01 19:56:37 1367 浏览量 回答数 1

问题

关于用mongodb存游戏数据的一些问题

5lmosptwzjx2q 2020-09-19 18:07:21 27 浏览量 回答数 0

万券齐发助力企业上云,爆款产品低至2.2折起!

限量神券最高减1000,抢完即止!云服务器ECS新用户首购低至0.95折!

回答

//首先创建一个自动增长id集合 ids>db.ids.save({name:”user”, id:0});//可以查看一下是否成功`> db.ids.find(); { “_id” : ObjectId(“4c637dbd900f00000000686c”), “name” : “user”, “id” : 0 }`//然后每次添加新用户之前自增一下 ids集合 获得id`>userid = db.ids.findAndModify({update:{$inc:{‘id’:1}}, query:{“name”:”user”}, new:true}); { “_id” : ObjectId(“4c637dbd900f00000000686c”), “name” : “user”, “id” : 1 }`//注:因为findAndModify是一个方法完成更新查找两个操作,所以具有原子性,多线程不会冲突。//然后保存相应的数据>db.user.save({uid:userid.id, username:”kekeles”, password:”kekeles”, info:”http://blog.dotcoo.com/ “});//查看结果`> db.user.find(); { “_id” : ObjectId(“4c637f79900f00000000686d”), “uid” : 1, “username” : “admin”, “password” : “admin” }`//这是mongo的shell,如果用的是服务器端程序java php python,可以自己对这些操作封装一下,只用传几个参数就可以返回自增的id,还可以实现像Oracle的跨表的自增id。

落地花开啦 2019-12-02 01:42:30 0 浏览量 回答数 0

问题

mongo批量使用ObjectId替换新增字段的值遇到的问题

蛮大人123 2019-12-01 19:59:29 1115 浏览量 回答数 1

问题

当持久化DB使用RDS,缓存使用MongoDB或Redis时,怎么使用DTS实现缓存更新

云栖大讲堂 2019-12-01 21:26:29 1996 浏览量 回答数 0

回答

基于mongodb的c++ drivers封装了libmongo(fedora 17,gcc 472,boost,mongo c++基础库)1、c++实现的通用接口,conn,get ,gets ,set,sets,remove等2、实现连接池,毕竟访问大的情况,mongodb堵死。3、实现了多线程安全测试通过。public://默认构造函数,默认连接数为1cmongo();//传入连接数到构造函数,默认连接数为sizecmongo(int size);//析构函数~cmongo();public://设置tcp读写超时时间`int set_wr_timeout(double t);int conn(string mhost="127.0.0.1",int mport=27017);`//设置db collection`int setdb(string mdb,string mcollection);int setindex(string key);int get(map& out,vector in,string key,string key_val);`//投递一批要查询的字段,fields为要查询哪些字段`int gets(map< string,map >& rout,vector fields,vector in,string key);int dumpkey(map< string,string >& rout,string key,string val);int dumpvals(map< string,map >& rout,vector in,string key);int set(map in,string key,string key_val);`//批量写入//更新接口,批量更新key="id"// "123456":,// "123457":,`int sets(map< string,map > in,string key);int remove(string key,string key_val);`

落地花开啦 2019-12-02 01:49:16 0 浏览量 回答数 0

问题

关于mongo批量使用ObjectId替换新增字段的值遇到问题

爵霸 2019-12-01 20:08:30 1180 浏览量 回答数 0

回答

这么快就出测试报告了..执行力不错啊. ######请多提意见,谢谢######我想有疑问问问题是没错吧, shard1: dxud3c006 + dxud3c007 这一行具体是什么?我真的不知道,我已经百度了,但是没有找到想要的答案!!楼主,赐教!######@田毅 : 太感谢!!!######shard1: dxud3c006 + dxud3c007: dxud3c006等等都是主机名,指的是具体一台主机######不错,比较详细的测试报告,赞一个 ###### 我也打算用它用存文件,海量小文件+SSD。 不知MongoDB是否有针对 SSD作优化?是不是出现重复擦写的情况? 比如场景:一次写入N次读取,文件内容不更新的情况下######目前我了解到的,没看到有什么专门对于SSD的优化,对于你这种 一次写入N次读取的场景来说,不会存在频繁擦写的情况(除非你定期对mongodb执行维护操作)。不过,一般来说,使用mongodb的时候只要把内存搞大一点就可以满足读取速度的需求,SSD和内存比起来性价比还不是很高,mongodb的主页上有专门说明SSD使用的doc,参考:http://www.mongodb.org/display/DOCS/SSD###### 楼主请问,我是最近才学mongodb的。在linux服务器上配置了分片和复制集。天测试并发性的时候。总是报错“too may open files” linux系统打开文件限制1024,我用ulimit设置了。 mongodb启动的时候我也用-maxConns=20000设置了。 我是使用的线程数400,添加数据数400. 在mongo登陆后db.serverStatus().connections打印的还最大连接数还是 { "current" : 1, "available" : 818, "totalCreated" : NumberLong(1) }默认的。 请问这是为什么?请楼主赐教。

kun坤 2020-06-07 21:24:29 0 浏览量 回答数 0

问题

PHP性能分析第一篇XHProfXHGui介绍

sunny夏筱 2019-12-01 21:50:04 9141 浏览量 回答数 4

问题

在Debian 8系统中安装NodeBB

dongshan8 2019-12-01 21:38:02 4265 浏览量 回答数 1

问题

centos7--LNMP搭建wordpress出错,非常困难,找不出原因!求大神帮忙一下,谢谢!

skyrainx 2019-12-01 19:46:26 124 浏览量 回答数 1
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站