Brug af positionsoperator
db.test.find( { "array.value":"value2" }, { "array.$":1, _id:0 })
Output
{ "array" :[ { "name" :"test2", "value" :"value2" } ] }
Brug af aggregering
db.test.aggregate([ { $unwind :"$array"}, { $match :{"array.value" :"value2"}}, { $project :{ _id :0, matrix :1}}])
output
{ "array" :{ "name" :"test2", "value" :"value2" } }
Brug af Java-driver
MongoClient mongoClient =new MongoClient(new ServerAddress("localhost", 27017)); DB db =mongoClient.getDB("mydb"); DBCollection collection =db.getCollection("test"); DBObject unwind =new BasicDBObject("$unwind", "$array"); DBObject match =new BasicDBObject("$match", new BasicDBObject("array.value", "value2")); DBObject project =new BasicDBObject("$project", new BasicDBObject( "_id", 0).append("array", 1)); List pipeline =Arrays.asList(unwind, match, project); AggregationOutput output =collection.aggregate(pipeline); Iterable results =output.results(); for (DBObject result:results) { System.out.println(result.get("array")); }
output
{ "name" :"test2" , "value" :"value2"}