我正在使用MongoDB 3.2.3和mongo-java-driver-3.2.2.jar库。
为了连接到服务器并连接到特定的数据库,我按照以下步骤进行操作。然后我创建了一个名为col1
的集合:
<cfset Mongo = CreateObject("java","com.mongodb.MongoClient")>
<cfset Mongo.init("192.168.0.30")>
<cfset db = Mongo.getDatabase('testaj')>
<cfset db.createCollection("col1") >
我从互联网上获取了以下代码,用于将文档插入集合中:
<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)>
不幸的是,最后一行会生成以下错误:
No matching Method/Function for com.mongodb.MongoCollectionImpl.save(com.mongodb.BasicDBObject) found
当我输出(通过cfdump
)类com.mongodb.MongoCollectionImpl
的内容时,似乎完全合乎逻辑,因为我没有看到save
方法。
有人知道如何使用这个Java驱动程序在ColdFusion中插入MongoDB文档吗?
我应该导入另一个库或类吗?
db.col1.save(doc)
有效吗?还是db.testaj.save(doc)
? - Miguel-Fcol1
变量的位置。难道不应该是:col1 = db.getCollection("col1"); col1.insert(doc)
? - John Whish