Java 解析并选择mongodb
我正在使用mongodb,并且面临一个问题 我想从存储在mongodb文档JSON中的URL中选择主机 我怎样才能实时做到这一点 我目前正在做的是,首先用主机更新每个记录的mongodb记录,然后在主机上进行分组 例如,假设我有url,然后我用域更新每个记录,这意味着example.com作为主机,然后我通过操作为我的组选择主机 因此,基本上我希望选择主机,但不使用主机更新每个记录 可能吗?怎么可能 谢谢 不知道是否有人得到了这个。 我认为这是一个很明显的例子, 在更新之前,我有这个 一,。 { 网址:http://www.example.com/a/b/c } 更新后,我将此作为 二,。 { 网址:http://www.example.com/a/b/c, 主持人:www.example.com } 所以我想在我的分组中通过查询选择主机而不更新文档 ---另一种解释。 我有一个如上所述的mongo文档,其url指向上面的1 所以,我如何在url的主机上进行分组查询,而不是url本身Java 解析并选择mongodb,java,mongodb,Java,Mongodb,我正在使用mongodb,并且面临一个问题 我想从存储在mongodb文档JSON中的URL中选择主机 我怎样才能实时做到这一点 我目前正在做的是,首先用主机更新每个记录的mongodb记录,然后在主机上进行分组 例如,假设我有url,然后我用域更新每个记录,这意味着example.com作为主机,然后我通过操作为我的组选择主机 因此,基本上我希望选择主机,但不使用主机更新每个记录 可能吗?怎么可能 谢谢 不知道是否有人得到了这个。 我认为这是一个很明显的例子, 在更新之前,我有这个 一,。 {
query = new BasicDBObject();
key = new BasicDBObject();
key.put("url", true);
DBCursor cursor = table.find(query,key);
while(cursor.hasNext())
{
System.out.println(cursor.next()); //will print whole url
}
System.out.println("============Printing only host(domain) from url");
key = new BasicDBObject();
key.put("url", true);
cursor = table.find(query,key);
while(cursor.hasNext())
{
System.out.println(new URL(cursor.next().get("url").toString()).getHost()); //will print only host www.example.com
}
`
上面的代码将首先打印url,然后使用游标仅打印主机
但我想通过某种方式提取url的主机域来分组
这就是为什么我现在要做的,我首先在url上分组以获得唯一的url,然后使用JAVA NET包的url类,我使用.getHost方法获得JSON文档的每个唯一url的主机,并使用主机更新它,如上面第2点所示
现在我可以轻松地在主机上进行分组
但是我不想先更新mongo文档,
我只想直接在主机上执行GROUPBY,这意味着选择url,但实时解析主机,这样我就可以减少使用主机更新每个文档的步骤
可能吗
我们可以在mysql中做些什么,我想是这样的,从表中选择somefunction\u gethosturl
我想现在我不能说得更清楚了
请检查此项,如果有解决方案,请给出解决方案
谢谢。我想你可能需要展示一个更清晰的例子,当前的描述让我头晕目眩:我的意思是我有一个URL,我想选择主机或从中提取。可能吗?BasicDBObject键=新的BasicDBObject;key.puturl,true//这将为我提供url,但是像这样的key.putnew URLurl.getHost,true;//不知道这项工作或不这样,如果我有这样的钥匙;将生成,但我只想要url example.com的主机。我怎么能得到它呢?你检查过任何URL库吗?我在代码中使用java.net.URL包,但什么是URL库?它是用于mongodb java驱动程序的吗?您能更清楚地说明您的文档中需要两个fieldsurl和host,还是只需要一个包含数据的字段www.example.com