MongoDB批插入不使用java驱动程序

MongoDB批插入不使用java驱动程序,mongodb,Mongodb,我正在试用mongoDB,下面是我用来连接和插入记录的代码 import com.mongodb.*; import java.net.UnknownHostException; import java.util.LinkedList; import java.util.List; public class MongoConnect { public static void main(String[] args) throws UnknownHostException, Inter

我正在试用mongoDB,下面是我用来连接和插入记录的代码

import com.mongodb.*;

import java.net.UnknownHostException;
import java.util.LinkedList;
import java.util.List;

public class MongoConnect {

    public static void main(String[] args) throws UnknownHostException, InterruptedException {
        MongoClient mongoClient = new MongoClient("localhost");
        DB db = mongoClient.getDB("mydb");
        DBCollection collection = db.getCollection("emails");
        long currentTime = System.currentTimeMillis();

        long totalRecords = 120L;
        long batchInsert = 0;

        long insertedRecords = 0L;
        List<DBObject> basicDBObjects = new LinkedList<DBObject>();
        while (insertedRecords < totalRecords) {
            System.out.println("adding: "+insertedRecords);

            basicDBObjects.add(new BasicDBObject("email", "amar+" + insertedRecords + "@gmail.com"));
            insertedRecords++;
            batchInsert++;
            if (batchInsert == 5) {
                System.out.println("inserting: "+(insertedRecords-5));
                collection.insert(basicDBObjects);

                System.out.println("Inserted: *******"+insertedRecords);
                //Thread.sleep(200);
                batchInsert = 0;
                basicDBObjects = new LinkedList<DBObject>();
            }
        }

        long endTime = System.currentTimeMillis();
        System.out.println("Total time taken :"+((endTime-currentTime)/1000));
        //long currentTime = System.currentTimeMillis();
        DBCursor email = collection.find(new BasicDBObject("email", "amar+3@gmail.com"));
        int count = email.count();
        System.out.println("count = "+count);
        System.out.println("Total time taken: "+String.valueOf(System.currentTimeMillis()-currentTime));

    }
}
导入com.mongodb.*;
导入java.net.UnknownHostException;
导入java.util.LinkedList;
导入java.util.List;
公共类MongoConnect{
公共静态void main(字符串[]args)抛出UnknownHostException、InterruptedException{
MongoClient MongoClient=新的MongoClient(“本地主机”);
DB=mongoClient.getDB(“mydb”);
DBCollection=db.getCollection(“电子邮件”);
长currentTime=System.currentTimeMillis();
长时间记录=120L;
长批插入=0;
长插入记录=0升;
List basicdbobobjects=newlinkedlist();
while(insertedRecords
我可以看到创建了带有“电子邮件”的收藏,它显示为
show collections

但是当我执行
db.mydb.emails.find({})
时,不会出现任何结果。我尝试重新启动mongo服务,甚至尝试了
db.dropDatabase()
似乎没有任何效果。有人能指出这个问题吗?仅供参考,控制台上的插入工作正常。

我只更改了
MongoClient MongoClient=new MongoClient(“localhost”)
to
Mongo Mongo=new Mongo()并且一切都如您所期望的那样工作

您使用的是哪个版本的mongo驱动程序?我使用的是mongo 2.9.1,以下是maven依赖项:

<dependency> 
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId> 
<version>2.9.1</version>
</dependency>

<dependency> 
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId> 
<version>2.9.1</version> 
</dependency>

Mongo mongo = new Mongo();
        DB db = mongo.getDB("example");
        DBCollection collection = db.getCollection("sampleCollection");
        List<DBObject> basicDBObjects = Lists.newArrayList();
        long currentTime = System.currentTimeMillis();
        long totalRecords = 120L;
        long batchInsert = 0;

        long insertedRecords = 0L;
        while (insertedRecords < totalRecords) {
            System.out.println("adding: "+insertedRecords);

            basicDBObjects.add(new BasicDBObject("email", "amar+" + insertedRecords + "@gmail.com"));
            insertedRecords++;
            batchInsert++;
            if (batchInsert == 5) {
                System.out.println("inserting: "+(insertedRecords-5));
                collection.insert(basicDBObjects);

                System.out.println("Inserted: *********"+insertedRecords);
                Thread.sleep(200);
                batchInsert = 0;
                basicDBObjects = Lists.newArrayList();
            }
        }

        long endTime = System.currentTimeMillis();
        System.out.println("Total time taken :"+((endTime-currentTime)/1000));
        //long currentTime = System.currentTimeMillis();
        DBCursor email = collection.find(new BasicDBObject("email", "amar+3@gmail.com"));
        int count = email.count();
        System.out.println("count = "+count);
        System.out.println("Total time taken: "+String.valueOf(System.currentTimeMillis()-currentTime));

org.mongodb
mongo java驱动程序
2.9.1
org.mongodb
布森
2.9.1 
Mongo Mongo=新Mongo();
DB=mongo.getDB(“示例”);
DBCollection=db.getCollection(“sampleCollection”);
List basicdbobobjects=Lists.newArrayList();
长currentTime=System.currentTimeMillis();
长时间记录=120L;
长批插入=0;
长插入记录=0升;
while(insertedRecords
我只更改了
MongoClient MongoClient=新的MongoClient(“localhost”)
to
Mongo Mongo=new Mongo()并且一切都如您所期望的那样工作

您使用的是哪个版本的mongo驱动程序?我使用的是mongo 2.9.1,以下是maven依赖项:

<dependency> 
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId> 
<version>2.9.1</version>
</dependency>

<dependency> 
<groupId>org.mongodb</groupId>
<artifactId>bson</artifactId> 
<version>2.9.1</version> 
</dependency>

Mongo mongo = new Mongo();
        DB db = mongo.getDB("example");
        DBCollection collection = db.getCollection("sampleCollection");
        List<DBObject> basicDBObjects = Lists.newArrayList();
        long currentTime = System.currentTimeMillis();
        long totalRecords = 120L;
        long batchInsert = 0;

        long insertedRecords = 0L;
        while (insertedRecords < totalRecords) {
            System.out.println("adding: "+insertedRecords);

            basicDBObjects.add(new BasicDBObject("email", "amar+" + insertedRecords + "@gmail.com"));
            insertedRecords++;
            batchInsert++;
            if (batchInsert == 5) {
                System.out.println("inserting: "+(insertedRecords-5));
                collection.insert(basicDBObjects);

                System.out.println("Inserted: *********"+insertedRecords);
                Thread.sleep(200);
                batchInsert = 0;
                basicDBObjects = Lists.newArrayList();
            }
        }

        long endTime = System.currentTimeMillis();
        System.out.println("Total time taken :"+((endTime-currentTime)/1000));
        //long currentTime = System.currentTimeMillis();
        DBCursor email = collection.find(new BasicDBObject("email", "amar+3@gmail.com"));
        int count = email.count();
        System.out.println("count = "+count);
        System.out.println("Total time taken: "+String.valueOf(System.currentTimeMillis()-currentTime));

org.mongodb
mongo java驱动程序
2.9.1
org.mongodb
布森
2.9.1 
Mongo Mongo=新Mongo();
DB=mongo.getDB(“示例”);
DBCollection=db.getCollection(“sampleCollection”);
List basicdbobobjects=Lists.newArrayList();
长currentTime=System.currentTimeMillis();
长时间记录=120L;
长批插入=0;
长插入记录=0升;
while(insertedRecords
也尝试了2.10.1,但它再次起作用。你确定你检查的是正确的mongo吗?你能改变一下数据库名吗