2013-11-07 3 views
1

Есть ли операция save в mongoose.js или mongodb api, которая возвращает _id сохраненной записи?Операция SAVE, возвращающая память _id?

В mongoose следующие сохранят запись.

p.save(function (err) { 
    if (err) return handleError(err); 
    else console.log('saved'); 
    }) 
}) 

Аналогично db.collection.save(document) будет сохранить документ в MongoDB апи. Но в обоих случаях вам нужно снова запросить db для _id, чего я хочу избежать. Как это кажется неэффективным.

ответ

0

Когда вы создаете экземпляр объекта в Mongoose, объект будет иметь уже назначенный _id (как он назначен на клиенте по умолчанию).

Так что, если вы просто проверить:

console.log(p.id); 

Вы увидите, что это имеет значение, прежде чем позвонить save.

И в случае использования родного драйвера для Node.JS документ возвращается в параметре result с набором _id.

var collection = db.collection("tests"); 
collection.insert(p, function(err, results) { 
    if (err) { return; } 
    // results in an array, and in this case 
    // results[0]._id would be available 
}); 
Смежные вопросы