0

まず第一に、私はノードとcouchDBの初心者であり、既存のアプリケーションにいくつかの機能を追加する必要があるこのプロジェクトがあることをお知らせしたいと思います.

だから、私はjavascript/node/express Webアプリケーションを持っていて、クレードルを使用してリモートのcouchDBから特定のドキュメントを取得し、そのフィールドとその値のリストを取得したいと考えています。後で、これらのフィールド/値をいくつかの html に表示する必要があります。サードパーティによって動的に追加/削除されるため、ドキュメントにどのフィールドがあるかわかりません。必要なドキュメントを取得できましたが、そのフィールドを反復処理する方法がわかりません。それを行う最善の方法は何ですか?

ドキュメントの簡略化されたサンプルを次に示します。

{
"_id": "1.1.5",
"_rev": "5-56ebac233e7f56a14a4534c6902727f7",
"1.1.5.39": {
   "Project": {
       "Project1": {
           "files": "...",
           "status": "NEW",
           "id": 2
       },
       "Project2": {
           "files": "...",
           "status": "ASSIGNED",
           "id": 3
       }
   }
}
"1.1.5.23": {
   "Project": {
       "Project3": {
           "files": "...",
           "status": "NEW",
           "id": 4
       },
       "Project4": {
           "files": "...",
           "status": "NEW",
           "id": 5
       }
   }
}
}

フィールド「1.1.5.39」と「1.1.5.23」、および「ステータス」値を取得する必要があります。これらのフィールドは、ソフトウェアのいくつかのバージョンを表します。問題はフィールドのフォーマットでもあります:数字とドットなので、「Object.attribute」表記だけを使用することはできません...

4

1 に答える 1

0

最初の部分は、クレードルを介してドキュメントを取得することです:

// get the Connection
var connection = new(cradle.Connection)('http://living-room.couch', 5984, {
  cache: true,
  raw: false
});
// get the DB
var db = connection.db('yourDB');

// get the document
var docID = "1.1.5";
db.get('docID', function (err, doc) {
  displayDoc(doc);
});

function displayDoc(doc) {
  // Do your display handling here
}

必要な 2 番目の部分は、任意のオブジェクトを表示することです。ここで、この質問に対する私の回答を紹介します。

幸運を。

于 2012-09-16T17:20:22.240 に答える