Interroger un document sur les éléments de tableau dans MongoDB en utilisant Java
Je suis nouveau sur MongoDB. Mon exemple de document est
{
"Notification" : [
{
"date_from" : ISODate("2013-07-08T18:30:00Z"),
"date_too" : ISODate("2013-07-30T18:30:00Z"),
"description" : "fdfd",
"url" : "www.adf.com"
},
{
"date_from" : ISODate("2013-07-01T18:30:00Z"),
"date_too" : ISODate("2013-07-30T18:30:00Z"),
"description" : "ddddddddddd",
"url" : "www.pqr.com"
}
],
Je suis en train de mettre à jour la Notification dont "url" : "www.adf.com"
. Mon code Java de le faire est:
BasicDBObject query=new BasicDBObject("url","www.adf.com");
DBCursor f = con.coll.find(query);
Il ne recherche pas le document dont "url"
est "www.adf.com"
.
source d'informationauteur Prashant Thorat
Vous devez vous connecter pour publier un commentaire.
Vous avez un imbriquée document dans ce cas. Votre document contient un champ
Notification
qui est un tableau de ranger plusieurs sous-objets avec le champurl
. Pour effectuer une recherche dans un sous-domaine, vous devez utilisez le point-syntaxe:Ce sera, cependant, de retour de l'ensemble du document avec l'ensemble de l'
Notification
tableau. Il est probable que vous ne voulez le sous-document. À ce filtre, vous devez utiliser la version à deux arguments de la Collecte.trouver.Le
.$
signifie "seule la première entrée de ce tableau qui est compensé par la trouver-opérateur"Cela devrait toujours retourner un document avec un sous-ensemble
Notifications
mais ce tableau ne doit contenir l'entrée, oùurl == "www.example.com"
.À parcourir ce document avec Java, ce faire:
Par la route: Lors de votre base de données grandit, vous aurez probablement rencontrer des problèmes de performances, moins de créer un index pour accélérer cette requête: