在另一张 SO 海报(Vinicius Miana)解决了我的 issue 以插入 List[DBObject] ...

// Bulk insert all documents
collection.insert(MongoDBList(docs)) // docs is List[DBObject]

现在,我在尝试插入时看到此错误。
java.lang.IllegalArgumentException: BasicBSONList can only work with numeric keys, not: [_id]
编辑

完整的堆栈跟踪
[info]   java.lang.IllegalArgumentException: BasicBSONList can only work with numeric keys, not: [_id]
[info]   at org.bson.types.BasicBSONList._getInt(BasicBSONList.java:161)
[info]   at org.bson.types.BasicBSONList._getInt(BasicBSONList.java:152)
[info]   at org.bson.types.BasicBSONList.get(BasicBSONList.java:104)
[info]   at com.mongodb.DBCollection.apply(DBCollection.java:767)
[info]   at com.mongodb.DBCollection.apply(DBCollection.java:756)
[info]   at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:220)
[info]   at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:204)
[info]   at com.mongodb.DBCollection.insert(DBCollection.java:76)
[info]   at com.mongodb.casbah.MongoCollectionBase$class.insert(MongoCollection.scala:508)
[info]   at com.mongodb.casbah.MongoCollection.insert(MongoCollection.scala:866)

我已经用完全相同的问题检查了 post,但我不确定如何应用已接受的答案。

这个错误是否意味着我不能插入任何键值对,使得 value 不能转换为 Int (每个 BasicBSONList )?

最佳答案

MongoDBList 与普通列表不同,它是 BasicDBList 的便利包装器,因此转换为 vargs 无法按预期工作。

你应该提供 List[DBObject] 然后分解成 vargs:

val docs = List[DBObject("a" -> "b")
collection.insert(docs: _*)

关于scala - java.lang.IllegalArgumentException : BasicBSONList can only work with numeric keys, 不是:[_id],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19058990/

10-09 17:22