gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 06:48:24 24 4
gpt4 key购买 nike

我使用的是 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);

此后数据库中不会进行任何更新。

最佳答案

插入的 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"}

关于java - 无法使用 mongodb java 驱动程序将文档插入集合中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18341090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com