У меня есть следующий код, и моя цель - получить документы с указанными тегами.
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
.Если есть лучший способ вставить теги в базу данных (чтобы его было легче найти), я был бы рад узнать.
Заранее спасибо,