Привет, у меня проблемы с массивами в mongodb.Чтение документа с использованием Java не является проблемой, но чтение массива, содержащегося в документе, является проблемой.Допустим, у меня есть коллекция myCol:
{"name": "lenny linux", "gender": "m", "computers": [{"name": "computer"}, {"name": "computer2"} {"name"...}]}
Итак, существует массив с компьютерами.Я мог бы прочитать весь документ с помощью
DBCollection myCol = getCollection(...);
BasicDBObject query = new BasicDBObject();
query.put(name, "lenny linux");
DBCursor cursor = myCol.find(query);
while (cursor.hasNext()) {
System.out.print(cursor.next());
}
Но мне просто нужны имена компьютеров, поэтому я должен как-то прочитать массив.Не получайте этот массив в mongodb.А также, что, если я хотел бы удалить что-то из массива mongodb?Это не то же самое, что удалить обычный документ ... спасибо за любую помощь!
Редактировать: Если я читаю страницу mongodb: http://www.mongodb.org/display/DOCS/Advanced+Queries#AdvancedQueries-ValueinanArray Я действительно не понимаюЭто.У них есть множество цветов, и затем они читают красный, как это:
db.things.find({ colors :"red" });
Зачем мне это делать?Если я хочу прочитать массив, чтобы знать, что внутри массива.Пользователь не знает, что есть «красный» или синий или что-то еще.Может быть, массив цветов пуст?Тогда я получаю ноль, 0 или что-то еще, и если есть 4 цвета, тогда дайте мне эти цвета, распечатайте их.У меня нет других примеров ... извините за мой плохой английский.
Edit2: Хорошо, поэтому для меня новое решение - получить весь документ, где name == lenny linux (как в первый раз в моем коде), а затем проанализировать этот документ с помощью внешнего анализатора JSON, например json-simple .Ну, может быть, это не лучшее решение, потому что лучшим решением было бы получить материал в массиве без других библиотек, просто используя mongolib ... но хорошо, он работает :) Если кто-то знает более простой способ, просто опубликуйте его здесь.Спасибо.