在java中通过传递DBObject对象给MongoDB的find()方法来查询数据。

leiboo 发布于 2015/08/03 17:34
阅读 4K+
收藏 0

开源之夏第三届火热来袭,高校学生参与赢万元奖金!>>>

我在java web工程中使用


DBObject todayWLCriteria = new BasicDBObject();
        todayWLCriteria.put("shop_id", utilsService.getAtb(request).getShopId());
        todayWLCriteria.put("sale_channel", "$in:[1,2,3,4]}");   //这里该如何传值
        List<DBObject> todayWLObjects = mongoPersist.getMongoCollection(RtSellerRegion_h).find(todayWLCriteria).sort(new BasicDBObject("no", -1)).toArray();

来查询mongo中的数据,但是sale_channel 中需要传入四个值1,2,3,4

我知道直接在Mongo 中可以使用$in来查询,像这样db.tianyc02.find({age:{$in:[11,22]}})

但是,在java中的OBject对象中,我该怎么把这个四个值传入sale_channel中,我代码中写的那样程序无法正确查询,求大神指教。



加载中
0
leiboo
leiboo

好吧,等了这么久都没人来回答,经过长时间度娘谷哥,终于搞定,现在贴上解决方法如下:

BasicDBList saleChannel = new BasicDBList();
        saleChannel.add(2);
        saleChannel.add(3);
        saleChannel.add(4);
        saleChannel.add(9);
        todayWLCriteria.put("sale_channel", new BasicDBObject("$in",saleChannel));



第一个一个BasicDBList 将所需数据使用add()方法添加进去,然后配合$in就OK了。

0
tbaby
tbaby

MongoDB Plugin可能java上最好用而且实时跟进官方版本的ORM,让您更加舒适地使用MongoDB。

  • 与MongoDB版本基本同步(基于最新3.4.0)
  • 使用方式更像是自然语言,用起来更舒适
  • 几乎没有任何学习成本
  • 支持MongoDB的授权机制(可以使用用户名和密码登录)、支持连接MongoDB副本集、读写分离、安全写入、SSL连接、地理位置等特性
  • 内置JFinal和Resty插件。(基于最新版的JFinal和Resty)

强烈推荐   https://www.oschina.net/p/mongodb-plugin    

使用plugin一个in(数组)就可以达到你的目的了

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部
返回顶部
顶部