Как получить элемент массива из коллекции Mongodb, используя Java? - PullRequest
0 голосов
/ 25 июня 2019

У меня есть следующий код, и моя цель - получить документы с указанными тегами.

String myText = "It is the first #example and is very #important";
ArrayList<String> tags = textProcessor.getTags(myText);

 try {
            MongoClient mongo = new MongoClient("localhost", 27017);
            DB db = mongo.getDB("myFirstDatabase");

            DBCollection table = db.getCollection("firstCollection");
            BasicDBObject document = new BasicDBObject();
            document.put("Text", myText);
            document.append("tags", tags);
            table.insert(document);

            /**** Find and display ****/
            BasicDBObject searchQuery = new BasicDBObject();
            searchQuery.put("tags", "#important");

            DBCursor cursor = table.find(searchQuery);

            while (cursor.hasNext()) {
                System.out.println(cursor.next());
            }

Это не работает, потому что tags - это массив, и я ищуelement в массиве.Как я могу получить документы, которые имеют данный тег (в данном случае «важный») напрямую?Я знаю, что могу извлечь все теги всех документов, а затем сравнить их в цикле.Но я бы хотел сделать это напрямую.

А пока я совершенно новичок в mongodb.Если есть лучший способ вставить теги в базу данных (чтобы его было легче найти), я был бы рад узнать.

Заранее спасибо,

1 Ответ

1 голос
/ 25 июня 2019

Список Mongodb может быть запрошен через один строковый запрос, вы должны проверить textProcessor.getTags и проверить данные в mongodb.Я также предлагаю вам использовать spring-data-mongodb, так как он намного проще и легче для изучения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...