java获取mogodb表结构,MongoDB查询构造函数采用原始查询字符串Java

I am trying to come up with a concept to take a query string and have it passed into something like this via a query object:

returnList = mongoTemplateTracking.find(query,TrackingData.class, COLLECTION_NAME);

I've been looking at the constructors of both the Query and Criteria classes to see if they could take a raw string such as:

"ID" : "32399a"

Instead of building up the Criteria object via Criteria.where().is() etc..

I have seen the method

protected List doFind(String collectionName,

com.mongodb.DBObject query,

com.mongodb.DBObject fields,

Class entityClass)

However as I am autowiring the mongoTemplateTracking into my class I cannot access this method.

解决方案

MongoDB query language ("MQL") is easily expressed in JSON form. So if you have a string expression like:

String s = "{\"$or\": [ {\"name\": \"buzz\"}, {\"age\": {\"$lt\": 20 }} ] }";

then you can easily parse it with this util:

import com.mongodb.util.JSON;

DBObject query = (DBObject) JSON.parse(s);

yourCollection.find(query);

Take a look at In Java, is there a way to write a string literal without having to escape quotes? to make the escaping of quotes in long query expressions a little easier.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值