繁体   English   中英

无法使用mongodb java驱动程序将文档插入集合

[英]not able to insert documents into collection using mongodb java driver

我正在使用mongo mongo java驱动程序版本2.11.2。 我想在我的dbin mongodb中插入一些文档,当我尝试从命令行执行它时,一切正常。 但是当我使用mongo java驱动程序时,它无法正常工作。 我正在使用BasicDBObject来填充文档。 但是collection.insert(BasicDBObject).getN()总是给我0。 什么都没有插入到集合中。 我在这里错过了什么吗?

添加代码:

mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("db");
DBCollection collection = db.getCollection("collection");
BasicDBObject o = new BasicDBObject();
o.put("key1", "value1");
o.put("key2", "value2");
collection.insert(o);

此后不会在DB中进行更新。

插入的getlasterror中的'n'值始终为零。 ('n'值是WriteResult.getN()返回的值。)

请参阅此MongoDB Jira票证: https//jira.mongodb.org/browse/SERVER-4381 已关闭,优先于新的插入,更新,删除机制: https//jira.mongodb.org/browse/SERVER-9038

长话短说。 你没有生气或遗失任何东西。 它是MongoDB的一个“特性”,希望最终能够在2.6版本中得到修复。

抢。

编辑:

我稍微修改了您的示例以打印保存的文档。 你能尝试在你的环境中运行这个版本吗?

import java.net.UnknownHostException;

import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.WriteConcern;

public class StackOverFlow {

    public static void main(String[] args) throws UnknownHostException {
        MongoClient mongo = new MongoClient("localhost:27017");
        DB db = mongo.getDB("db");
        DBCollection collection = db.getCollection("collection");
        BasicDBObject o = new BasicDBObject();
        o.put("key1", "value1");
        o.put("key2", "value2");
        collection.insert(WriteConcern.SAFE, o);

        for (DBObject doc : collection.find()) {
            System.out.println(doc);
        }
    }
}

在我的机器上输出:

{ "_id" : { "$oid" : "5235f98495302901eb70e7a4"} , "key1" : "value1" , "key2" : "value2"}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM