-1

或者......“对我来说很复杂”可能更准确。

无论如何,我打开了 mongod 和 mongo,并在 mongo 终端中输入了以下命令:

db.err_details.insert({"error_text" : "Log has found error on inbound", "co
de" : "WM2001_0", "product" : "WM2001", "profile : ["CR" : "11999002", "sol
s" : ["run", "to", "the", "hills"]], "otherinfo" : "Contact Bob Saget"});

err_details 确实存在,但这并不重要。无论如何,我按回车键,它给了我两次“...”然后就退出而不插入。它以前在查询中出现语法错误时已经这样做了……但是它不会告诉您错误在哪里或出了什么问题,而且,天哪,我这次找不到它。

如果意图不清楚,我希望“配置文件”有一个键值对数组,其中一个(“sols”)只有值,而不是键值对。

鉴于“配置文件”是一个对象,我尝试了以下操作:

db.err_details.insert({"error_text" : "Log has found error on inbound", "errco
de" : "WM2001_0", "product" : "WM2001", "profile" : {"CR" : "11999002", "sols" :
["run", "to", "the", "hills"]}, "otherinfo" : "Contact Bob Saget"});

这是有效的 mongo,但我想要一个对象数组,而不是包含带有数组的元素的对象。

4

2 回答 2

4

有语法错误。您对“profile”属性的值似乎是一个对象,但您使用数组的[]. 并且关于配置文件的引用之一也丢失了。

(提示:只需将您的命令复制/粘贴到任何 JS 检查服务,因为这是 Mongo 控制台使用的。具有即时错误突出显示的编辑器会做得非常好)。

我不太了解您的数据库的结构,但是“k/v 对数组”应该是这样的:

db.err_details.insert({
    "error_text" : "Log has found error on inbound",
    "code" : "WM2001_0",
    "product" : "WM2001",
    "profile" : [
        {"CR" : "11999002"},
        {"sols" : ["run", "to", "the", "hills"]}
    ],
    "otherinfo" : "Contact Bob Saget"
});

即 - 每一对都包裹在物体中。

于 2012-05-31T14:43:26.097 回答
1

数组,[]在 BSON/JSON/JavaScript 中无法键入,您需要使用 object {}。您的Profile属性有键,但类型为数组。

于 2012-05-31T14:45:36.763 回答