有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

json如何在java中从MongoDB Atlas获取特定字段?

下面的Java代码返回JSON对象,该对象包含我的MongoDB Atlas数据库中“users”集合的所有字段,但我只需要一个字段值,比如“password”。我该怎么办

package com.servlets;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.MongoException;
import com.mongodb.client.FindIterable;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoCursor;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.model.Filters;
import org.bson.Document;
public class mongoDB 
{
    public static void main(String[] args)
    {
        String username = "gary29198";
        Gson gson = new Gson();
        MongoClientURI uri = new MongoClientURI("mongodb+srv://gary29198:0001221149@sih2019-yp3zc.mongodb.net/test?retryWrites=true");
        MongoClient mongoClient = new MongoClient(uri);
        MongoDatabase database = mongoClient.getDatabase("SIH2019");
        MongoCollection<Document> collections = database.getCollection("users");
        FindIterable<Document> find = collections.find(Filters.eq("username", username));
        try( MongoCursor<Document> cursor = find.iterator() ) 
        {
            while(cursor.hasNext())
            {
                System.out.println(gson.toJson(cursor.next()));
            }
        }
        catch(MongoException e)
        {
            System.out.println(e.getMessage());
        }
    }

}

共 (1) 个答案

  1. # 1 楼答案

    可以使用投影

    collection.find().projection(Projections.include("password"));