gpt4 book ai didi

MongoDB 唯一索引不起作用

转载 作者:可可西里 更新时间:2023-11-01 09:23:41 29 4
gpt4 key购买 nike

我有一部分简单的代码,由于唯一索引约束而不得不失败。但是这两个对象都被添加到数据库中并且可以被查询,尽管有唯一索引。

    BasicDBObject typeUrlIndex = new BasicDBObject();
typeUrlIndex.put(FIELD_TYPE_URL, 1);

BasicDBObject typeUrlIndexOptions = new BasicDBObject();
typeUrlIndexOptions.put("background", true);
typeUrlIndexOptions.put("sparse", true);
typeUrlIndexOptions.put("unique", true);
typeUrlIndexOptions.put("dropDups", true);

objects.ensureIndex(typeUrlIndex, typeUrlIndexOptions);

// here I can check, that index is really created, and it is true.
List<DBObject> indexes = objects.getIndexInfo();

BasicDBObject dbo1 = new BasicDBObject(FIELD_TYPE_URL, "aaa");
objects.save(dbo1);

BasicDBObject dbo2 = new BasicDBObject(FIELD_TYPE_URL, "aaa");
objects.save(dbo2);

两个对象都被保存并获得不同的_id。

更新。我发现,怎么了。两个对象在保存到数据库后都获得了自己的 id,但实际上第二个对象并没有被保存(它不能被查询,即使是给定的 id)。

感谢 araqnid,它给出了正确的答案。很遗憾,我没有足够的评分来投票。

最佳答案

当您查看新 session 时,这两个对象是否都出现了?如果保存不安全,它们可能会返回上面代码中分配的 ID,即使服务器实际上会拒绝第二个。

关于MongoDB 唯一索引不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8805048/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com