Mongo db query where 具有值的列(值列表)的条件

Mongo db query where condition for a column (list of values) having a value

我正在尝试找到一种方法来使用 Spring 查询来过滤 Mongo 数据库中的记录。 这是场景,让我们看看我有一个 Activity entity/document。其中一个字段是名称列表。我想看看我是否可以让名称字段包含的所有记录都获得给定值,比方说 "Joker"。

比如我的json在Mongo是

Activity 1 -

{ “_id”:ObjectId(“52c14eb92f7ceb854e445354”), ... "names":[{ "username" : "username1", "realname" : "Super Man" }, { "username" : "username2", "realname" : "Iron Man" }] }

Activity 2 -

{ “_id”:ObjectId(“52c14eb92f7ceb854e445355”), ... "names":[{ "username" : "username3", "realname" : "Bat Man" }, { "username" : "username4", "realname" : "Joker" }] }

而且我希望查询只会让我得到 Activity 2。

此外,如果可能的话,我更喜欢在我的代码中使用 spring Mongo 查询。提前致谢。

尝试

db.collection.find({"names.realname": "Joker"});

我从未使用过 Spring 查询,但应该类似于

Query query = new Query();
query.addCriteria(Criteria.where("names.realname").is("Joker"));
List<MyClass> users = mongoTemplate.find(query, MyClass.class);