L'exécution de Mongo comme Requête (JSON)via Java
Je me demandais si il existe un moyen d'exécuter les mongo comme requête directement via Java c'est à dire nous donner mongoDB comme requête comme une Chaîne de caractères à une fonction en Java pilote pour mongoDB comme un Objet de type String et un DBCursor Objet est retourné. Quelque chose comme:
import com.mongodb.*;
import java.net.UnknownHostException;
public class ExecuteQuery {
public static void main(String args[]){
try{
Mongo m = new Mongo();
DB db = m.getDB("test");
DBCollection coll = db.getCollection("first");
DBObject doc = new BasicDBObject();
DBCursor cur =coll.executeQuery("db.first.find({"username":"joe"})");
}
catch(UnknownHostException e){
System.out.println(e);
}
catch (MongoException.DuplicateKey e) {
System.out.println("Exception Caught" + e);
}
}
}
Remarque: executeQuery()
n'est pas une fonction intégrée. Il est seulement utilisé pour des fins de démonstration.
Alors, Est-il une fonction dans l'api java qui convertit une chaîne json pour un BasicDBObject
exemple? Merci.
Quelle solution avez-vous l'utiliser?? Je suis d'intéressant à propos de cette
Vous pouvez le vérifier sur ce lien. Cela pourrait aider. stackoverflow.com/questions/47093563/...
Vous pouvez le vérifier sur ce lien. Cela pourrait aider. stackoverflow.com/questions/47093563/...
OriginalL'auteur aditya_gaur | 2011-02-01
Vous devez vous connecter pour publier un commentaire.
Ce que vous avez montré ici n'est pas de JSON, c'est le code Javascript intégré MongoDB Shell. Si vous avez besoin d'une raison pour exécuter le code à l'intérieur de l'environnement Java, vous aurez à intégrer le moteur Javascript (comme Rhino) et de mettre en œuvre compatible API.
Sinon, vous avez juste besoin de les convertir en JSON pour
DBObject
et vous pouvez le faire avec JSON.parse() méthode ou toute autre JSON-cartographie de la bibliothèque comme Jackson. Notez que MongoDB utilise étendu un ensemble de types de données qui ne sont pas présents en JSON: http://www.mongodb.org/display/DOCS/Data+Types+et+les ConventionsUPD: Scott Hernandez a souligné à propos de
JSON.parse
.Merci pour la correction. Ouais j'ai essayé le parser JSON fournis dans la MongoDB bibliothèque Java. Si possible pouvez-vous s'il vous plaît laissez-moi savoir un peu plus sur Rhino.
OriginalL'auteur pingw33n
Oui, il est possible, en passant par le filtre sous la forme d'une chaîne. Exemple:
Vous pouvez Également utiliser
com.mongodb.util.JSON
, mais je ne le recommande pas. C'est moins descriptive.Veuillez noter que cela pourrait être vulnérable aux injections SQL parce que vous analysez/construire le filtre de vous-même.
Je recommande d'utiliser Jongo de la requête paramétrée.
OriginalL'auteur AlikElzin-kilaka
Prendre un coup d'oeil à la Jongo bibliothèque - il va vous permettre de courir encore assez avancé de requêtes à l'aide de la syntaxe de ligne de commande.
Elle utilise également un très rapide GSON mappeur pour retourner vos propres objets de retour pour vous en tant que résultat de la requête, au lieu d'une liste de BasicDBObjects.
OriginalL'auteur Ryan Kimber
Je vous recommande d'utiliser mongo-shell-comme-utilitaire de requête (jar). Il permet l'écriture de mongo requêtes en java (ou scala) code utilisant la même syntaxe que celle de mongo shell de commande. Pour être plus précis, vous pouvez écrire mongo requêtes dans un format de chaîne. Il prend également en charge des fonctionnalités avancées telles que l'agrégation de pipeline.
Jetez un oeil à
https://github.com/EqualExperts/mongo-shell-like-query
OriginalL'auteur user2599739
Vous pouvez suivre l'exemple du tutoriel:
http://www.mongodb.org/display/DOCS/Java+Tutoriel#JavaTutorial-GettingASetofDocumentsWithaQuery
Note leur utilisation (de Base)DBObject pour créer la requête, pas une chaîne de caractères.
OriginalL'auteur Scott Hernandez