如何在java中为类的成员设置唯一性,同时将类插入Mongo DB

0kjbasz6  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(92)

我是Java的新手,我正在编写代码来插入一个用户类到MongoDB,并根据唯一的用户ID检索数据。为此,我想将userID设置为唯一值,同时将我的类user插入MongoDB。
我的代码片段
我有一个用户类,有成员

{
String userID,
String Name, etc
}

我的add user函数与db(作为MongoDatabase示例注入)看起来像

public String addUser(User user){
    ...
    MongoCollection<User> userCollection = db.getCollection(<collection_name>, User.class);

我使用MongoCollectioninterface来允许类作为数据。根据其他Stackoverflow答案中提到的link,我尝试使用CreateIndex()方法,如下所示

userCollection.createIndex({"userID": 1 }, {unique : true});
    ...
}

但没有用。显示语法错误。
通过使用MongoCollection,这可能是可能的,但我想检查是否可以使用类。

iqjalb3h

iqjalb3h1#

该语法似乎适用于MongoDb命令行。下面是MongoCollection类的javadoc:
https://javadoc.io/doc/org.mongodb/mongodb-driver-sync/latest/com/mongodb/client/MongoCollection.html
这看起来像是你要使用的:

java.lang.String createIndex(Bson keys,
                             IndexOptions indexOptions)

所以{"userID": 1 }需要是一个Bson对象,而{unique : true}需要是一个IndexOptions对象。
编辑:
例如,类似于以下内容:

IndexOptions indexOptions = new IndexOptions().unique(true);  
collection.createIndex(Indexes.ascending("userID"), indexOptions);

相关问题