Ответ 1
Вы можете передать другой DBObject с именами полей и передать его здесь:
cur = coll.find(new BasicDBObject("id", 6655), your_dbobject_with_field_names);
Вот документация API
С драйвером Java Mongodb я ищу способ вернуть только ограниченные поля с помощью find()
или findOne()
. Например, у меня есть коллекция "people"
с полями: "id"
, "name"
, "surname"
, "address"
, "city"
... и я просто хочу вернуть "name"
и "surname"
Я искал в Интернете, и я просто нашел этот пример кода Java Mongodb: http://vsbabu.org/mt/archives/2010/03/02/simple_mongodbjava_example.html
Вы можете передать другой DBObject с именами полей и передать его здесь:
cur = coll.find(new BasicDBObject("id", 6655), your_dbobject_with_field_names);
Вот документация API
Если вы используете Java Driver 3.1, вы можете использовать Projections:
collection.find().projection(Projections.include("name", "surname"));
Эти коды будут обрабатывать вашу проблему. (Java driver 3.0.2)
BasicDBObject fields = new BasicDBObject();
//fields.put("_id", 0);
fields.put("title", 0);
DBCursor cursor = collection.find(new BasicDBObject(),fields).sort(new BasicDBObject("_id", 1));
этот код работает для меня:
String json = "{_id:0,name:1,surname:1}";
Bson bson = BasicDBObject.parse( json );
FindIterable<Document> iterDoc = collection.find().projection(bson);