当前位置: 首页 > 面试题库 >

在MongoDB中使用JSON?

潘银龙
2023-03-14
问题内容

我的应用程序大量使用JSON对象(org.json.JSONArray和朋友)。将它们存储到Mongo
DBObjects中以便查询它们的最有效方法是什么?BasicDBObject无法序列化JSONArray,这两个层次结构之间似乎根本没有互操作性。


问题答案:

好的,似乎没有互操作性,所以我自己动手了。忙于避开类型系统:

public class Util {
    public static DBObject encode(JSONArray a) {
        BasicDBList result = new BasicDBList();
        try {
            for (int i = 0; i < a.length(); ++i) {
                Object o = a.get(i);
                if (o instanceof JSONObject) {
                    result.add(encode((JSONObject)o));
                } else if (o instanceof JSONArray) {
                    result.add(encode((JSONArray)o));
                } else {
                    result.add(o);
                }
            }
            return result;
        } catch (JSONException je) {
            return null;
        }
    }

    public static DBObject encode(JSONObject o) {
        BasicDBObject result = new BasicDBObject();
        try {
            Iterator i = o.keys();
            while (i.hasNext()) {
                String k = (String)i.next();
                Object v = o.get(k);
                if (v instanceof JSONArray) {
                    result.put(k, encode((JSONArray)v));
                } else if (v instanceof JSONObject) {
                    result.put(k, encode((JSONObject)v));
                } else {
                    result.put(k, v);
                }
            }
            return result;
        } catch (JSONException je) {
            return null;
        }
    }
}


 类似资料:
  • 问题内容: 好的,所以我已经安装了Flask,我想知道如何将MongoDB数据库与即将开始构建的Flask应用程序连接和使用。 问题答案: 我个人发现PyMongo库简单易用。 你首先需要导入并创建一个连接: 然后获取你的数据库实例和集合(表): 然后,你可以通过处理保存数据的JSON文档来操纵数据。他们的网站上有完整的示例。

  • 问题内容: 我遍历了许多博客和网站,了解如何配置Elasticsearch for MongoDB来索引MongoDB中的集合,但是它们都不是直接的。 请向我说明逐步安装Elasticsearch的过程,其中应包括: 组态 在浏览器中运行 我将Node.js与express.js结合使用,因此请相应地提供帮助。 问题答案: 这个答案应该足以使您开始按照本教程使用MongoDB,Elasticsea

  • 本文向大家介绍使用findOneAndUpdate()在MongoDB中更新?,包括了使用findOneAndUpdate()在MongoDB中更新?的使用技巧和注意事项,需要的朋友参考一下 将用于更新基于过滤和排序条件,即一个单一的文件- 让我们创建一个包含文档的集合- 在方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是要使用更新的查询。在这里,我们增加特定文档的字段Marks-

  • 我需要汇总以下记录中的所有标记: https://gist.github.com/sbassi/5642925 (这个片段中有2个样本记录)并按大小对它们进行排序(首先是出现频率更高的标记)。但是我不想考虑具有特定“user_id”的数据(比方说,2,3,6和12)。 以下是我的尝试(只是聚合,没有过滤和排序): db。用户库。聚合({$unwind:“$annotations.data.tags

  • 我有一个使用mongoDb的NodeJSAPI。我将应用程序部署在kubernetes集群中。在这里,您可以找到kubernetes.yml文件https://github.com/daumann/chronas-api/tree/azure/kuberneties 现在我想将azure cosmosdb用于容器的mongoDB instatt。https://docs.microsoft.com

  • 问题内容: 我的数据库中有大量的文档,我想知道如何浏览所有文档并更新它们,每个文档具有不同的值。 问题答案: 答案取决于您使用的驱动程序。我所知道的所有MongoDB驱动程序都以一种或另一种方式实现。 这里有些例子: mongojs 僧 猫鼬 在回调内部更新文档 在回调内部更新文档的唯一问题是您不知道何时更新所有文档。 要解决此问题,您应该使用一些异步控制流解决方案。以下是一些选项: 异步的 承诺