MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

BasicBSONList ne peut fonctionner qu'avec des touches numériques, pas :[_id]

BasicDBList ne peut pas être utilisé pour faire des insertions de plusieurs documents, il n'est utilisé que pour les tableaux à l'intérieur d'un seul document. Pour effectuer une insertion en bloc, vous devez plutôt passer un tableau de DBObjects dans la méthode d'insertion.

J'ai changé votre code pour faire ceci, et cela a fonctionné sans erreur :

    StringBuffer sb = new StringBuffer();
    int valuecount = 0;
    final QuoteReportBean[] quotelist = {new QuoteReportBean()};
    DBObject[] totalrecords = new BasicDBObject[quotelist.length];
    for (int i = 0; i < quotelist.length; i++) {
        QuoteReportBean reportbean = quotelist[i];
        valuecount++;
        BasicDBObject dbrecord = new BasicDBObject();
        dbrecord.append("cust_id", reportbean.getCustomerId());
        dbrecord.append("unique_symbol", reportbean.getUniqueSymbol());
        sb.append(reportbean.getUniqueSymbol() + ",");
        dbrecord.append("exch", reportbean.getExchange());
        dbrecord.append("access_time", reportbean.getDate());
        totalrecords[i] = dbrecord;
    }
    WriteResult result = coll.insert(totalrecords, WriteConcern.NORMAL);