Mongodb Java - 如何返回集合的所有字段

时间:2016-08-23 02:57:40

标签: java mongodb

使用驱动程序Java Mongodb,我正在寻找一种方法来返回一个集合的所有字段。例如,我有一个集合" people",如何获取所有字段,我想要输出: ' ID''名称''城市' ...

5 个答案:

答案 0 :(得分:2)

非常感谢,我终于得到了答案。 DBCursor cur = db.getCollection("people").find(); DBObject dbo = cur.next(); Set<String>s=dbo.keySet();

答案 1 :(得分:0)

来自manual

要返回集合中的所有文档,请在没有条件文档的情况下调用find方法。例如,以下操作将查询restaurants集合中的所有文档。

FindIterable<Document> iterable = db.getCollection("restaurants").find();

迭代结果并对每个结果文档应用一个块。

 iterable.forEach(new Block<Document>() {
        @Override
        public void apply(final Document document) {
            System.out.println(document);
        }
   });

答案 2 :(得分:0)

您需要确定对您而言有意义的样本数量,但这将拉动最近提交的10个样本。

Document nat = new Document().append("$natural",-1);
    FindIterable<Document> theLastDocumentSubmitted = collection.find().limit(10).sort(nat);

    ArrayList<String>fieldkeys = new ArrayList<String>();

    for (Document doc : theLastDocumentSubmitted) {
        Set<String> keys = doc.keySet();
        Iterator iterator = keys.iterator();
        while(iterator.hasNext()){
            String key = (String) iterator.next();
            String value = (String) doc.get(key).toString();
            if(!fieldkeys.contains(key)) {
                fieldkeys.add(key);
            }
        }
    }
    System.out.println("fieldkeys" + fieldkeys.toString());

答案 3 :(得分:0)

  • 下面的代码将返回给定集合中的所有字段。

     MongoCollection<Document> mongoCollection = mongoDatabase.getCollection("collection_name");
                        AggregateIterable<Document> output = mongoCollection.aggregate(Arrays.asList(
                                new Document("$project", Document("arrayofkeyvalue", new Document("$objectToArray", "$$ROOT"))),
                                new Document("$unwind", "$arrayofkeyvalue"),
                                new Document("$group", new Document("_id", null).append("allkeys", new Document("$addToSet", "$arrayofkeyvalue.k")))
                        ));
    

答案 4 :(得分:-1)

下面的代码将返回人物收集的所有字段:

db.people.find()