在另一张 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/