2016-03-30 17 views
9

MongoDB 3.2.3 ve mongo-java-driver-3.2.2.jar kütüphanesini kullanıyorum.ColdFusion ile MongoDB nasıl kullanılır?

Sunucuya ve ardından belirli bir veritabanına bağlanmak için aşağıdakileri yaptım. Sonra col1 adında bir koleksiyon oluşturmak:

<cfset Mongo = CreateObject("java","com.mongodb.MongoClient")> 
<cfset Mongo.init("192.168.0.30")> 
<cfset db = Mongo.getDatabase('testaj')> 
<cfset db.createCollection("col1") > 

aldığım koleksiyonuna bir belge eklemek için internetten Aşağıdaki kod:

<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)> 

Maalesef son satırı aşağıdaki hata üretir:

No matching Method/Function for com.mongodb.MongoCollectionImpl.save(com.mongodb.BasicDBObject) found 

çünkü tamamen mantıklı görünmektedir (a cfdump ile) bir çıkış sınıfıiçeriği, save yöntemini göremiyorum.

Bu Java sürücüsünü kullanarak ColdFusion'da MongoDB belgesinin nasıl ekleneceğini bilen var mı?
Başka bir kitaplık veya sınıf içe aktarmalı mıyım?

+0

'db.col1.save (doc)' çalışıyor mu? Veya 'db.testaj.save (doc)'? –

+0

Kodunuzda 'col1' değişkenini nerede oluşturduğunuzu göremiyorum. Olmaması gereken: 'col1 = db.getCollection (" col1 "); col1.insert (doc) '? –

+0

Merhaba John .. işte burada: user3569267

cevap

1
Umarım

Bu biletin beri artık cevabını bulduk 5 aylık ama sadece referans içindir artık şudur:

kullanmanız gereken yeni bir belge eklemek için col1.insertOne(doc) ya col1.insertMany(docs) (bir dizi varsa)

bu adreste bulunabilir hakkında Leigh fazla bilgi ile belirtildiği gibi col1.updateOne(query, values) veya col1.updatedMany(query, values)

kullanmalıdır bir belgeyi güncellemek için: http://mongodb.github.io/mongo-java-driver/3.2/driver/getting-started/quick-tour/#mongodb-driver-quick-tour