0
A
回答
1
我想知道如果我只是不理解這個問題;但你不能簡單地做一個:
db.collection.remove({"_id":"yourInvalidId"});
刪除行然後重新插入它?
0
,如果你有一個對象中的任何其他字段只是做到以下幾點:
db.collection.remove({"fieldName":"fieldValue"})
,然後就重新添加,這應該是不是做一個更新的領域更安全。
2
MongoDB中的ObjectId是一個特殊的12字節BSON數據類型,它被設計爲在分配時具有很高的唯一性(即:基於當前時間,特定機器等生成)。
您可以使用MongoDB驅動程序提供的方法檢查給定ID字符串的有效性。例如,在Java中,你可以使用下面的方法:
static boolean isValid(String s)
類
:
org.bson.types.ObjectId
檢查一個給定的輸入字符串是否是corrent的ObjectId與否。
希望這會有所幫助。
1
由於您無法更新_id字段(這是mongo限制),因此您必須複製行並刪除舊行。 在shell:
var row = db.yourcollection.findOne({_id : "your invalid id"})
db.yourcollection.remove({_id : "your invalid id"}))
row._id = new ObjectId()
db.yourcollection.insert(row)
然而,這是奇怪的是,你有一個不良lengthed OBJECTIF,你自己創建它?
0
當代碼有語義錯誤時,可能會發生此錯誤。根據objectId的行可以在不刪除的情況下進行更新。
BasicDBObject query = new BasicDBObject();
query.put("_id", "your id");
DBObject dbObj = testCol.findOne(query);
BasicDBList Brand_children= (BasicDBList) dbObj.get("children");
Brand_children.add(itemBrand);
System.out.println(Brand_children);
testCol.save(dbObj);
並且也可以除去如上述
相關問題
- 1. 將Parse objectId轉換爲Mongo ObjectId?
- 2. 從KeystoneJS URL中刪除/隱藏Mongo ObjectID
- 3. MongoDB objectID陌生人錯誤
- 4. Meteor Mongo使用ObjectID查找文檔
- 5. Mongo錯誤日期
- 6. HashiCorp Vault Mongo錯誤
- 7. 演員到的ObjectId錯誤做findOneAndUpdate
- 8. 所有的ObjectId在mongo中都是偶數嗎?
- 9. Mongo錯誤:DBClientBase :: findN:傳輸錯誤()
- 10. spring-mongo-1.0.xsd錯誤
- 11. Scalatra和Mongo insertOne錯誤 - java.lang.NoSuchMethodError:com.mongodb.operation.MixedBulkWriteOperation.bypassDocumentValidation
- 12. 錯誤修復mongo db
- 13. Mongo DB未知錯誤?
- 14. Meteor-Mongo:錯誤處理findone
- 15. Laravel 5.5 Mongo DB錯誤
- 16. 在Angular中使用$ http POST獲取mongo ObjectID
- 17. 在Javascript中使用Mongo ObjectID轉換字符串(流星)
- 18. 在Mongo Java中出現錯誤11000,DuplicateKeyException
- 19. 強制轉換爲ObjectId在Mongoose中的值錯誤失敗findOne
- 20. 與Mongo的Sails本地更新無法使用ObjectId
- 21. 通過Mongo Compass上的ObjectId進行搜索
- 22. shell上的Mongo Db聚合$ redact錯誤
- 23. 重定向mongo shell的錯誤輸出
- 24. DDD和MongoDB:可以讓Mongo創建ObjectID嗎?
- 25. 用自定義時間生成Mongo ObjectId(_id)?
- 26. 如何將時間戳轉換爲Mongo ObjectID
- 27. 在啓動mongo shell時發生錯誤
- 28. 致命錯誤:類'Mongo'找不到
- 29. Mongo DB沒有更新,沒有錯誤
- 30. Morphia錯誤:ObjectId的無效十六進制表示
只是一個供參考;你在這裏採取了額外的步驟。您可以從中找到並排除_id,然後當您插入新行時,它會自動創建一個新的ID。 – Petrogad