私はMongoDB ドキュメント(MongoLab.com にあります) を呼び出しclient
ており、これはフィットネス コンテストを追跡するために使用されます。毎週、「体重測定」が行われ、その他の詳細が追跡されます。
私が立ち往生しているのは、ドキュメントにサブドキュメントを追加して、 AngularJSclient
を使用して結果を追跡する方法です。
これは、私が見逃している明白で基本的なものかもしれないと感じていますが、新しいフィールドを既存のレコード、配列、または非配列に追加する方法がわかりません。
以下は関連する詳細であると私が信じているものですが、必要に応じて詳細をお尋ねください.
完全なコードはhttp://pastebin.com/4tyRiKusに貼り付けられています
クライアントの例(問題なくクライアントを追加できます)
{
"_id": {
"$oid": "50eee69fe4b0e4c1cf20d116"
},
"firstName": "Jon",
"lastName": "Doe"
}
_id
( /detail/:cliendId ) を介してデータを取得する別のテンプレート内から動作しますが、計量用のデータ ポイントを追加しようとしています。
<form ng-submit="addWeighIn()">
<input type="date" ng-model="date" required />
<input type="text" ng-model="weight" placeholder="Weight" smart-float required />
<input type="submit" class="btn btn-primary" value="Add" />
</form>
ここで[追加] ボタンをクリックすると、次の部分に進みます。
処理するコントロール内の関数(これは起動し、MongoLab モジュールで update() を呼び出します)
$scope.addWeighIn = function () {
console.log("addWeighIn: " + $scope.date + " : " + $scope.weight);
// the below line is obviously wrong, just out of ideas.
$scope.client.weights = [ { date: $scope.date, weight: $scope.weight } ];
$scope.client.update(function () {
});
};
コンソールにはaddWeighIn行が表示され、ネットワーク データはリクエストを送信していることを示していますが、実際にはドキュメントに重みがなく、上記と同じです。
$scope.addWeighIn() から呼び出されたMongoLab リソースと起動
Client.prototype.update = function (cb) {
console.log("mongolab: update: " + cb);
return Client.update({ id: this._id.$oid },
angular.extend({}, this, { _id: undefined }), cb);
};
update() 経由で送信されたデータ(新しい計量データがない)
{
"_id": {
"$oid": "50eee69fe4b0e4c1cf20d116"
},
"firstName": "Jon",
"lastName": "Doe"
}
これは実際のデータベースで探しているものですが、重みを追加する必要があり、基本的なことを理解していないと信じています。
{
"_id": {
"$oid": "50eee69fe4b0e4c1cf20d116"
},
"firstName": "Jon",
"lastName": "Doe"
"weights": [
{ "date": "1/3/2013",
"weight": 155 }
{ "date": "1/10/2013",
"weight": 150 }
]
}
どうしたらよいか、いくつか質問があります。
- client.weights.dateに設定するなど、 HTMLコードでこれを宣言的に行うことはできますか? 例:(動作しませんが、同様の方法があるかどうかを確認しています)
ng-model
<input type="date" ng-model="client.weights.date" required />
- 宣言的でない場合、AngularJS を介してこれを行う適切な方法は何ですか?
- これについて調べるには、どのような用語を使用すればよいですか? それが私の主な不満のようです。例が見つかりません。
http://docs.mongodb.org/manual/applications/update/で$pushの説明を見つけましたが、これを使用する必要があるかもしれませんが、これをAngularJS の方法で使用する方法がわかりません。