-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 は存在しますが、それは問題ではありません。いずれにせよ、Enter キーを押すと、「...」が 2 回表示され、挿入せずに終了します。以前、クエリに構文エラーがあったときにこれを行ったことがありますが、エラーの場所や何が間違っているのかを教えてくれません。

意図が不明な場合に備えて、「プロファイル」にキーと値のペアの配列が必要です。そのうちの 1 つ (「sols」) には、キーと値のペアではなく、値だけの ITS OWN 配列があります。

「プロファイル」はオブジェクトであるという事実に照らして、次のことを試しました。

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"});

これは有効なモンゴですが、配列を持つ要素を含むオブジェクトではなく、オブジェクトの配列が必要です。

4

2 に答える 2

4

構文エラーがあります。「プロファイル」プロパティの値はオブジェクトのようですが、配列の[]. また、プロファイルに関する引用の 1 つも欠落しています。

(ヒント: 任意の JS チェック サービスにコマンドをコピー アンド ペーストするだけです。これは Mongo コンソールが使用するサービスです。オンザフライ エラー ハイライト機能を備えたエディターは非常にうまく機能します)。

あなたのDBの構造はよくわかりませんが、「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の配列は[]キー設定できません。オブジェクトを使用する必要があります{}。プロパティProfileにはキーがありますが、配列として入力されます。

于 2012-05-31T14:45:36.763 に答える