我已将csv文件导入集合
我的文档保存为
"_id" : "ObjectID(53874d952f92e2af1a5f0afb)"
我无法查询此
任何人都可以帮我删除ObjectId
答案 0 :(得分:0)
让我们假设您的集合名称是myCollection。 这样做:
db.myCollection.forEach(function(doc) {
var oldId = doc._id;
var newIdStr = doc._id.replace(/ObjectID\((\w+)\)/g,"\$1");
var newObjId = ObjectId(newIdStr);
doc._id = newObjId;
db.myCollection.save(doc);
db.myCollection.remove({_id:oldId});
});
答案 1 :(得分:-1)
CSV不能完全保留字段的类型,并且可以显示字符串和整数(而不是Object_ids)。如果我是你,我会用最合适的语言编写一个解析器,然后在objectIds中转换你的_id。
另一种方法(如果您的_ids不重要)您可以将csv标头中的_id更改为任何其他名称,并且在导入mongo期间将创建新的ID,然后您将删除创建的字段。
下次您可以使用mongodump and mongorestore保留类型。