Поиск значения внутри документа [MongoDB] - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь найти значение внутри документа в MongoDB , закодированном в JAVA, я приведу пример:

Основной документ :

date: 12.2
rate: 9
people:
   1:George
   2:Candice
   3: James
   4: John
   x:
   x+1:

Это действительно просто в теории, дата и рейтинг не имеют значения, это всего лишь пример.

Допустим, у меня есть колонка людей, и внутри него новый документ с 1,2,3,4, x ... бесконечно, как бы я мог искать внутри столбца людей имя без указания числа в MongoDB ?

Ответы [ 3 ]

1 голос
/ 16 января 2020

Я вижу, что люди - это карта, поэтому вы можете использовать

db.collection_name.findOne({"people":{$regex:".*James.*"}});

Это приведет к получению значения на основе имени в регулярном выражении

1 голос
/ 18 января 2020

Это использует java

Query query = new Query();
query.addCriteria(Criteria.where("people").regex(".*James.*"));

List<User> userTest = mongoOperation.find(query, User.class);// User.class is the collection-name
System.out.println("query - " + query.toString());

for (User user : userTest) {
    System.out.println("userTest - " + user);
} 
Output
query - Query: { "people" : { "$regex" : ".*James.*"}}, Fields: null, Sort: null
userTest - You will get the collection in array

Надеюсь, это будет работать для вас.

1 голос
/ 16 января 2020

Вы можете попробовать это https://docs.mongodb.com/manual/tutorial/query-arrays/ или использовать MongoTemplate в java и использовать метод поиска, чтобы получить список людей в вашем деле.

...