Mongodb вставить и вернуть идентификатор с REST API - PullRequest
1 голос
/ 15 марта 2012

Новичок в Mongodb, пытается получить _id после вставки mongodb без обратной передачи.

$.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"]} )

Ответы [ 3 ]

0 голосов
/ 18 августа 2012

Вы не можете получить _id объекта, не ожидая ответа, потому что _id генерируется на сервере.Вы должны приложить успешный вызов к вашему запросу.Идентификатор фактически возвращается как член $ oid в объекте _id.

Это предполагает, что вы используете $ .ajax для выполнения запроса и API REST MongoLab, как описано в 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"]);
      });
0 голосов
/ 11 ноября 2012

В соответствии с документами MongoLab REST API квадратные скобки предназначены для вставки нескольких документов одновременно.Для отдельного документа вам просто нужно JSON.Stringify одного действительного документа JSON (BSON).

0 голосов
/ 15 марта 2012

Какой REST API вы используете? MongoDB не поставляется с REST API, который делает то, что вы пытаетесь сделать.

...