我在应用程序中使用MongoDB,需要在MongoDB集合中插入多个文档。我使用的版本是1.6
我在这里看到一个例子
http://docs.mongodb.org/manual/core/create/
在里面
批量插入多个文档 部分
作者传递数组的位置。
当我尝试同样的操作时,但是为什么不允许这样做,请告诉我如何一次插入多个文档?
package com;
import java.util.Date;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.MongoClient;
public class App {
public static void main(String[] args) {
try {
MongoClient mongo = new MongoClient("localhost", 27017);
DB db = mongo.getDB("at");
DBCollection collection = db.getCollection("people");
/*
* BasicDBObject document = new BasicDBObject();
* document.put("name", "mkyong"); document.put("age", 30);
* document.put("createdDate", new Date()); table.insert(document);
*/
String[] myStringArray = new String[] { "a", "b", "c" };
collection.insert(myStringArray); // Compilation error at this line saying that "The method insert(DBObject...) in the type DBCollection is not applicable for the arguments (String[])"
} catch (Exception e) {
e.printStackTrace();
}
}
}
请让我知道这是什么方法,以便可以通过java一次插入多个文档。
DBCollection.insert
接受类型为的参数DBObject
,List<DBObject>
或的数组DBObject
一次插入多个文档。您正在传递一个字符串数组。
您必须手动填充文档DBObject
,然后将它们插入List<DBObject>
或数组,DBObject
最后插入insert
。
DBObject document1 = new BasicDBObject();
document1.put("name", "Kiran");
document1.put("age", 20);
DBObject document2 = new BasicDBObject();
document2.put("name", "John");
List<DBObject> documents = new ArrayList<>();
documents.add(document1);
documents.add(document2);
collection.insert(documents);
上面的代码段与您在MongoDB shell中发出的命令基本相同:
db.people.insert( [ {name: "Kiran", age: 20}, {name: "John"} ]);
我想知道是否有可能在一次往返(网络呼叫)到Firestore数据库的过程中,通过ID列表获取多个文档。
问题内容: 我知道一次插入多个数据效率更高: 在golang中该怎么做? 使用字符串拼接,但这不是很好。db.Prepare更安全吧? 我需要一个功能更安全,更高效的函数,一次插入多个数据。 问题答案: 为什么不这样呢?(在此处编写但未进行测试,因此可能存在语法错误):
问题内容: 我需要用一个查询插入多行(行数不是常数),所以我需要像这样执行查询: 我知道的唯一方法是 但我想要一些更简单的方法。 问题答案: 我构建了一个程序,该程序将多行插入到位于另一个城市的服务器上。 我发现使用此方法的速度大约是的10倍。就我而言,tup是一个包含约2000行的元组。使用此方法大约花了10秒钟: 使用此方法需要2分钟:
效率不是很高。
问题内容: 做一个学校的项目,所以任何帮助将是巨大的谢谢! 我有两个表-如何插入两个表中?因此,两个表都是链接的。 用自动递增的主键调用第一个表 第二个称为的表具有链接到父表的外键 问题答案: 您需要执行以下操作: SCOPE_IDENTITY : 返回插入到同一作用域的标识列中的最后一个标识值。范围是一个模块:存储过程,触发器,函数或批处理。因此,如果两个语句位于相同的存储过程,函数或批处理中,
本文向大家介绍MongoDB中一次查询更新多个文档,包括了MongoDB中一次查询更新多个文档的使用技巧和注意事项,需要的朋友参考一下 要通过单个查询更新许多文档,请在MongoDB中使用 bulkWrite()。让我们创建一个包含文档的集合- 在find()方法的帮助下显示集合中的所有文档- 这将产生以下输出- 以下是使用MongoDB中的一个查询来更新许多文档的查询- 在find()方法的帮助