1

Mongodb の新機能で、mongodb の挿入後にラウンド トリップなしで _id を取得しようとしています。

$.ajax( { url: "https://api.mongolab.com/api/1/databases/xxx/collections/xx?apiKey=xxx",
          data: JSON.stringify( [ { "x" : 2,"c1" : 34,"c2" : getUrlVars()["c2"]} ] ),
          type: "POST",
          contentType: "application/json" } );

ありがとう

編集:角括弧を削除して購入することを解決 JSON.stringify( { "x" : 2,"c1" : 34,"c2" : getUrlVars()["c2"]} )

4

3 に答える 3

0

どの REST API を使用していますか? MongoDB には、実行しようとしている機能を実行する REST API が同梱されていません。

于 2012-03-15T05:25:38.963 に答える
0

MongoLab REST API ドキュメントによると、角括弧は一度に複数のドキュメントを挿入するためのものです。単一のドキュメントの場合は、単一の有効な JSON (BSON) ドキュメントを JSON.Stringify するだけです。

于 2012-11-11T10:56:51.567 に答える
0

_id はサーバー上で生成されるため、応答を待たずにオブジェクトの _id を取得することはできません。リクエストに成功の呼び出しを添付する必要があります。id は、実際には _id オブジェクト内の $oid メンバーとして返されます。

これは、$.ajax を使用してリクエストを作成し、MongoLab REST API をhttp://support.mongolab.com/entries/20433053-rest-api-for-mongodbに記載されていると仮定しています。

例えば:

$.ajax( { url: 'https://api.mongolab.com/api/1/databases/xxx/collections/xx?apiKey=xxx',
          data: JSON.stringify( {"x" : 1 } ),
          type: "POST",
          contentType: "application/json"}
      ).success(function(returnedData) {
          alert(returnedData._id["$oid"]);
      });
于 2012-08-17T21:36:17.237 に答える