sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongodb:Forespørg et json-objekt indlejret i et array

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"} 


  1. Mongoose &unik mark

  2. MongoDB findOneAndDelete()

  3. Fjederdata Match og Filter Nested Array

  4. Hadoop InputFormat &typer af InputFormat i MapReduce