Sto usando MongoDB 3.2.3 e la libreria mongo-java-driver-3.2.2.jar.Come utilizzare MongoDB con ColdFusion
Ho effettuato le seguenti operazioni per connettersi al server e quindi a un database specifico. Ho quindi creare una collezione di nome col1
:
<cfset Mongo = CreateObject("java","com.mongodb.MongoClient")>
<cfset Mongo.init("192.168.0.30")>
<cfset db = Mongo.getDatabase('testaj')>
<cfset db.createCollection("col1") >
ho ottenuto il seguente codice da Internet, al fine di inserire un documento nella collezione:
<cffunction name="m" returntype="any">
<cfargument name="value" type="any">
<cfif IsJSON(arguments.value)>
<cfset local.retrun = CreateObject("java","com.mongodb.util.JSON").parse(arguments.value)>
<cfelse>
<cfset local.retrun = CreateObject("java","com.mongodb.util.JSON").parse(SerializeJSON(arguments.value))>
</cfif>
<cfreturn local.retrun>
</cffunction>
<cfset doc = {
"Name" = "Marc",
"Spouse"= "Heather",
"Fruit" = "Mango",
"Kids" = [
{"Name"="Alexis", "Age"=7, "Hair"="blonde", "Description"="crazy" },
{"Name"="Sidney", "Age"=2, "Hair"="dirty blonde", "Description"="ornery" }
],
"Bike" = "Felt",
"LoveSQL" = true,
"TS" = now(),
"Counter" = 1
}>
<cfset doc = SerializeJSON(doc)>
<cfset doc = m(doc)>
<cfset col1.save(doc)>
Purtroppo l'ultima riga genera il seguente errore:
No matching Method/Function for com.mongodb.MongoCollectionImpl.save(com.mongodb.BasicDBObject) found
sembra essere del tutto logico, perché quando l'uscita I (tramite un cfdump
) il contenuto della classe com.mongodb.MongoCollectionImpl
, non vedo il metodo save
.
Qualcuno sa come inserire un documento MongoDB in ColdFusion utilizzando questo driver Java?
Devo importare un'altra libreria o classe?
'db.col1.save (doc)' funziona? Oppure 'db.testaj.save (doc)'? –
Non riesco a vedere dove stai creando la variabile 'col1' nel tuo codice. Non dovrebbe essere: 'col1 = db.getCollection (" col1 "); col1.insert (doc) '? –
ciao Giovanni .. eccolo qui: –
user3569267