2016-03-30 13 views
9

Tôi đang sử dụng MongoDB 3.2.3 và thư viện mongo-java-driver-3.2.2.jar.Cách sử dụng MongoDB với ColdFusion

Tôi đã làm như sau để kết nối với máy chủ và sau đó đến cơ sở dữ liệu cụ thể. sau đó tôi tạo ra một bộ sưu tập mang tên col1:

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

Tôi có đoạn mã sau từ internet để chèn một tài liệu vào bộ sưu tập:

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

Đáng tiếc là dòng cuối cùng tạo ra các lỗi sau:

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

Dường như hoàn toàn hợp lý vì khi tôi xuất (thông qua số cfdump) nội dung của lớp com.mongodb.MongoCollectionImpl, tôi không thấy phương thức save.

Có ai biết cách chèn tài liệu MongoDB trong ColdFusion bằng trình điều khiển Java này không?
Tôi có nên nhập một thư viện hoặc lớp học khác không?

+0

Tác vụ 'db.col1.save (doc)' có hoạt động không? Hoặc 'db.testaj.save (doc)'? –

+0

Tôi không thể thấy nơi bạn đang tạo biến 'col1' trong mã của bạn. Không nên là: 'col1 = db.getCollection (" col1 "); col1.insert (doc) '? –

+0

hi John .. ở đây là: user3569267

Trả lời

1

Hy vọng rằng bạn đã tìm thấy câu trả lời bây giờ kể từ khi vé này bây giờ là 5 tháng tuổi nhưng chỉ để tham khảo:

Để chèn một tài liệu mới, bạn nên sử dụng col1.insertOne(doc) hoặc col1.insertMany(docs) (nếu bạn có một mảng)

Để cập nhật một tài liệu bạn nên sử dụng col1.updateOne(query, values) hoặc col1.updatedMany(query, values)

Như đã đề cập bởi Leigh biết thêm thông tin về vấn đề này có thể được tìm thấy tại địa chỉ: http://mongodb.github.io/mongo-java-driver/3.2/driver/getting-started/quick-tour/#mongodb-driver-quick-tour

Các vấn đề liên quan