【问题标题】:How to insert in mongoDB my own id of an object (from Java)如何在 mongoDB 中插入我自己的对象 ID(来自 Java)
【发布时间】:2017-08-31 19:19:36
【问题描述】:

我正在制作一个 java 应用程序,我想在我的 mongoDB 中插入一些数据,但我想用我的属性替换默认 id

这是我的代码:

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” 谁能帮我?谢谢!!

【问题讨论】:

  • 我认为您不能完全删除 _id 字段。要么将 DOC 值映射到 _id,要么保持原样并在 DOC 上查询。

标签: java json mongodb collections database


【解决方案1】:

您可以创建自己的字段并将其命名为...“id”。在那里你将存储你想要的 id。

在您的集合架构中,您可以告诉 Mongo 不要像这样创建自动 ID:

// 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

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 2013-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多