在我成功实现从本地mongo服务器检索文档后,我开始尝试相反的方法,将存储在数据网格(DG)中的数据发送到服务器,因此我创建了一张卡片:
的是:
put the dgData of DG_02 into pArray2
puts the 5th element of pArray2,into pArray,
(我现在只想尝试一个元素)
sets pForceRootType,pPretty parameters for the MergJSON function
调用函数ArrayToJSON
put tJSON in fiel "E" to see what the function is returning
构造用于shell命令的字符串
put the result in rmongo to see the server answer
整个剧本
on mouseUp
local dbText
put the dgData of grp "DG_02" into pArray2
put pArray2[5] into pArray <-- Only the 5th element of the array
put "string" into tipo
put "false" into bonito
put ArrayToJSON(pArray, tipo, bonito) into tJSON
put tJSON into fld "E"
put "db.nueva.insert("& tJSON & ");" into dbText
put shell("C:\mongodb\bin\mongo.exe --eval" && "'" & dbText & "'" ) into rmongo
put rmongo
end mouseUp
这些是我在执行脚本时的观察结果,修改了函数的参数pForceRootType:
当tipo设置为Object字段时,“E”获得:{“Nombre”:“Sofia”,“_ id”:1012}
当tipo设置为String时,字段“E”获得:{“Nombre”:“Sofia”,“_ id”:“001012”}
在两种情况下(tipo = string或tipo = object)rmongo,请在消息中显示:
MongoDB shell version: 2.2.7
connecting to: test
db.nueva.insert({Nombre:Sofia,_id:001012});
未插入文档。
当直接在shell中尝试插入时,我可以看到为了成功插入,应该引用字符串值,但是(如果我在观察中没有错),函数返回的JSON不会引用字符串。
我将非常感谢您的导游,谢谢您,Javier
答案 0 :(得分:0)
ArrayToJSON返回的JSON具有适当的引号,您可以在字段“E”的文本中看到。
我最好的猜测是你需要为shell调用转义字符串,所以请尝试:
replace quote with "^""e in tJSON
当然,在你的任何一个字符串中引用引号都不再安全。