2016-04-11 2 views
-1

Ich muss Repo, Repo_date Werte in der Abfrage von der Befehlszeile einfügen. Versucht das Folgende, aber nicht in der Lage, Werte in die Abfrage einzufügen.erhalten Sie einen Befehlszeilenwert innerhalb einer einzelnen Zeichenfolge in Anführungszeichen in grrovy

String repo = this.args[0] 
String repo_date = this.args[1] + "T00:00:00.000Z" 

def query='items.find({"type" : "file","repo" :{"$match" : "${repo}"},"created":{"$lt": "${repo_date}").include("name","created").sort({"$asc": ["created"]})' 

Es wurde versucht, Escape-Zeichen zu verwenden.

ich die Abfrage als wie müssen (nach dem die Werte von der Kommandozeile vorbei)

def query='items.find({"type" : "file","repo" :{"$match" : "xyz"},"created":{"$lt": "2010-10-10T00:00:00.000Z").include("name","created").sort({"$asc": ["created"]})' 

Antwort

0

Wenn Sie die dreifache doppelte Anführungszeichen um den gesamten Query-String verwenden, dann sind die doppelten Anführungszeichen in der Abfrage wird nicht erzeugen Syntaxfehler. Hier ist ein in sich geschlossenes Arbeitsbeispiel:

String repo = 'xyz' 
String repo_date = '2010-10-10T00:00:00.000Z' 
String match = 'something' 
String lt = 'foo' 
String asc = 'bar' 

def query = """items.find({"type" : "file","repo" :{"$match" : "${repo}"},"created":{"$lt": "${repo_date}").include("name","created").sort({"$asc": ["created"]})""" 
+0

Danke @Emmanuel Rosa. Es funktioniert jetzt. – user6136315

Verwandte Themen