2017-04-06 71 views
0

我想提出一個Java應用程序,我想插入我的MongoDB的一些數據的ID,但我想用我的財產來替換默認ID如何在MongoDB中插入自己的對象(從Java)

這裏是我的代碼:

MongoClient mongoClient = new MongoClient("localhost"); 
     DB db = mongoClient.getDB("indexdb"); 
     DBCollection coll = db.getCollection("indexCollection"); 
     for (Map.Entry<String, ReduceResult> rr : directindex.entrySet()) { 
      BasicDBObject doc = new BasicDBObject("DOC", rr.getKey()); 
      Map<String,Integer>wordmap=new HashMap<String,Integer>(); 
      for (Map.Entry<String, Integer> r : rr.getValue().getIndexedFile().entrySet()) { 
       wordmap.put(r.getKey(), r.getValue()); 
      } 
      doc.append("terms", wordmap); 
      coll.insert(doc); 
     } 

輸出是

{ "_id" : { "$oid" : "58e5889ce4b02461ad5af080"} , "DOC" : "/home/ion/Desktop/RIW/input/doc4" , "terms" : { "dan" : 1 , "gutui" : 1}} 
{ "_id" : { "$oid" : "58e5889ce4b02461ad5af081"} , "DOC" : "/home/ion/Desktop/RIW/input/doc3" , "terms" : { "bune" : 1 , "gutui" : 1}} 
{ "_id" : { "$oid" : "58e5889ce4b02461ad5af082"} , "DOC" : "/home/ion/Desktop/RIW/input/doc2" , "terms" : { "dan" : 1 , "mere" : 2}} 
{ "_id" : { "$oid" : "58e5889ce4b02461ad5af083"} , "DOC" : "/home/ion/Desktop/RIW/input/doc1" , "terms" : { "ana" : 1 , "mere" : 1 , "pere" : 1}} 

但我想不說「_id」插入我希望我的對象的ID爲「DOC」 誰能幫助我?謝謝!!

+0

我不認爲你可以完全刪除'_id'場。將'DOC'值映射到'_id'或保持原樣並在'DOC'上查詢。 – Veeram

回答

0

您可以創建自己的字段並將其稱爲...「id」。在那裏你會存儲你想要的ID。

在您的收藏模式,你可以告訴蒙戈不創建自動IDS像這樣:

// disabled id 
var schema = new Schema({ name: String }, { id: false }); 
var Page = mongoose.model('Page', schema); 
var p = new Page({ name: 'mongodb.org' }); 
console.log(p.id); // undefined 

http://mongoosejs.com/docs/guide.html

相關問題