错误时创建的集合中mongolab对象:BasicBSONList只能用数字键工作,而不是:[_id

2019-10-18 03:50发布

我使用下面的JSON(并且已经验证它)我收集MongoLab:

[{
    "city": "ACMAR",
    "pop": 6055,
    "state": "AL",
    "_id": "35004"
},
{
    "city": "ADAMSVILLE",
    "pop": 10616,
    "state": "AL",
    "_id": "35005"
},
{
    "city": "ADGER",
    "pop": 3205,
    "state": "AL",
    "_id": "35006"
}]

不过,我不断收到此错误:BasicBSONList只能用数字键工作,而不是:[_id]。 所以我在做什么错?

Answer 1:

我想可能有什么问题的想法,但你能否详细说明几件事情? 这是一份包含较大的文件从您的收藏或列表的文件列表? 你在哪里得到确切的错误?

所述MongoLab文档编辑器只需要一个文件({}不[]),它不支持在这个时候批量插入。

如果您在代码中这个问题,然后通过做一些假设,我可以推测,如果提供的JSON是“数据”,则:

数据是BasicBSONList(或BasicDBList),其无法通过调用获得(“somefieldname”)进行访问。 相反,无论是:

一)遍历列表来访问它们的元素:

for(BasicDBObject doc : data) { String id = (String) doc.get("_id"); }

B)使用已知的列表索引作为中介

String _id = (String) ((DBObject)data.get(1)).get("_id"); //or
String _id = (String) ((DBObject)data.get("1")).get("_id");

这是因为,在引擎罩,一个BSONList看起来是这样的:

{
"0": {
    "city": "ACMAR",
    "pop": 6055,
    "state": "AL",
    "_id": "35004"
},
"1": {
    "city": "ADAMSVILLE",
    "pop": 10616,
    "state": "AL",
    "_id": "35005"
},
"2": {
    "city": "ADGER",
    "pop": 3205,
    "state": "AL",
    "_id": "35006"
}
}

让我知道如果这有助于!

感激,埃里克@ MongoLab



文章来源: error when creating object in collection in mongolab: BasicBSONList can only work with numeric keys, not: [_id]
标签: mongodb mlab