gpt4 book ai didi

java - MongoDB Java 查询 : Pattern. 编译(文本)(类似于 '%' 的 SQL)结果

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:25 25 4
gpt4 key购买 nike

我正在使用 Restfull Webservice 连接到 MongoDB 服务器并返回 JSON。当我搜索特定短语时,我会返回整个 JSON,而我只需要获取该 JSON 的特定部分,即该 JSON 中包含搜索短语的对象。我正在使用:

Pattern.compile("first") ( SQL 等效项,如 '%' ) 。但它返回整个 JSON。我该如何修复它?

这是我的 JSON:

{
"_id" : ObjectId("553743843bf93901552383d8"),
"name" : "Example Data",
"Example Array" : [
{
"_id" : ObjectId("553743843bf93901552383d9"),
"name" : "Example Name!",
"html" : "<div class='container'>This is first html</div>
},
{
"_id" : ObjectId("553743843bf93901552383d9"),
"name" : "Example Name2",
"html" : "<div class='container'>This is second html</div>
}
]
}

和网络服务:

@GET
@Path("example/{text}/")
@Produces("application/json;charset=utf-8")
public String getText(@PathParam("text") String text){

DB db = getConnection().getDB(content);
DBCollection collection = db.getCollection(examples);

BasicDBObject matchTextSearch = new BasicDBObject("$match", new BasicDBObject("html", Pattern.compile(text)));

AggregationOutput output = collection.aggregate(matchTextSearch);
BasicDBList parts = new BasicDBList();
for (DBObject result : output.results()) {
parts = result;
}

return JSON.serialize(parts);
}

最佳答案

查看您的文档和代码后,我认为您错过了展开示例数组,然后使用匹配作为

@GET
@Path("example/{text}/")
@Produces("application/json;charset=utf-8")
public String getText(@PathParam("text") String text){

DB db = getConnection().getDB(content);
DBCollection collection = db.getCollection(examples);

DBObject unwind = new BasicDBObject("$unwind", "$Example Array");

BasicDBObject matchTextSearch = new BasicDBObject("$match", new BasicDBObject("Example Array.html", Pattern.compile(text)));

AggregationOutput output = collection.aggregate(unwind,matchTextSearch);
BasicDBList parts = new BasicDBList();
for (DBObject result : output.results()) {
parts = result;
}

return JSON.serialize(parts);
}

关于java - MongoDB Java 查询 : Pattern. 编译(文本)(类似于 '%' 的 SQL)结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30349689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com