2017-11-18 14 views
0

私はJavaでMongoDBを初めて使っています。私は質問があります。MongoDBにArrayListを保存します

私のようなUserクラスました:

private final String email; 
private final String nome; 
private final String password; 
private Double saldo; 
private ArrayList<String> watchList = new ArrayList(); 
private ArrayList<CFD> portfolio = new ArrayList(); 

をし、MongoDBのコレクションにそれを保存したいです。 ArrayListの保存と取り込みは簡単です。しかし、ArrayListを保存して取り出す方法は?

CFDクラスは次のようである:

private final Date time; 
private final String company; 
private final double rate; 
private final CFDtype type; 
private final int units; 
private final double stop_loss; 
private final double take_profit; 

ビッグありがとう!

答えて

0

012モータードライバのバージョンで利用可能なPojo Codecを使用することができます。

import com.mongodb.MongoClient; 
import com.mongodb.client.MongoCollection; 
import com.mongodb.client.MongoDatabase; 
import org.bson.codecs.configuration.CodecRegistry; 
import org.bson.codecs.pojo.PojoCodecProvider; 

import java.util.Arrays; 

import static org.bson.codecs.configuration.CodecRegistries.fromProviders; 
import static org.bson.codecs.configuration.CodecRegistries.fromRegistries; 

public class Mongo { 

    public static void main(String[] args) throws Exception { 

     MongoClient mongoClient = new MongoClient(); 
     CodecRegistry pojoCodecRegistry = fromRegistries(MongoClient.getDefaultCodecRegistry(), 
       fromProviders(PojoCodecProvider.builder().automatic(true).build())); 
     MongoDatabase database = mongoClient.getDatabase(db).withCodecRegistry(pojoCodecRegistry); 
     MongoCollection<User> collection = database.getCollection(collection, User.class); 

     // Save User 
     User sUser = new User("name"); 
     CFD cfd = new CFD("company"); 
     sUser.setPortfolio(Arrays.asList(cfd)); 
     collection.insertOne(sUser); 

     // Retrieve User 
     User qUser = collection.find().first(); 

    } 

ユーザー

public class User { 

    private String name; 
    private List<CFD> portfolio = new ArrayList(); 

    public User() {} 

    public User(String name) { 
     this.name = name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 

    public List<CFD> getPortfolio() { 
     return portfolio; 
    } 

    public void setPortfolio(List<CFD> portfolio) { 
     this.portfolio = portfolio; 
    } 

    public String getName() { 
     return name; 
    } 
} 

CFD

public class CFD { 

    private String company; 

    public CFD() { 
    } 

    public String getCompany() { 
     return company; 
    } 

    public CFD(String company) { 
     this.company = company; 

    } 

    public void setCompany(String company) { 
     this.company = company; 
    } 
} 
関連する問題