[MONGODB] NodeJS에서 몽고 데이터베이스에 삽입 된 문서의 _id를 가져옵니다
MONGODBNodeJS에서 몽고 데이터베이스에 삽입 된 문서의 _id를 가져옵니다
나는 MongoDB의 문서를 삽입 할 NodeJS를 사용합니다. 이 코드처럼 데이터베이스에 문서를 삽입 할 수 있습니다 collection.insert 사용 :
// ...
collection.insert(objectToInsert, function(err){
if (err) return;
// Object inserted successfully.
var objectId; // = ???
});
// ...
어떻게 삽입 된 개체의 _id를받을 수 있나요?
최신 개체 삽입 _id를 얻기없이 _id를 얻을 수있는 방법이 있습니까?
같은 시간에 많은 사람들이 데이터베이스에 액세스 할 것으로 가정하면, 나는 최신 ID가 삽입 된 개체의 id는 것을 확신 할 수 없다.
해결법
-
==============================
1._ids이 있어야 문서 또는 문서가 삽입 돌아갑니다 collection.insert에 대한 콜백을위한 두 번째 매개 변수가 있습니다.
_ids이 있어야 문서 또는 문서가 삽입 돌아갑니다 collection.insert에 대한 콜백을위한 두 번째 매개 변수가 있습니다.
시험:
collection.insert(objectToInsert, function(err,docsInserted){ console.log(docsInserted); });
내가 무엇을 의미하는지에 관해 알기 위해 콘솔을 확인하십시오.
-
==============================
2.collection.insert의 콜백 번째 매개 변수를 사용하여보다 짧은 방법 되돌아가 _id (콜백 함수의 내부는, 그것을 상정하면 성공적인 작업이었다)를 사용하는 것이 objectToInsert._id 것이다.
collection.insert의 콜백 번째 매개 변수를 사용하여보다 짧은 방법 되돌아가 _id (콜백 함수의 내부는, 그것을 상정하면 성공적인 작업이었다)를 사용하는 것이 objectToInsert._id 것이다.
원래 객체를 사용하여 삽입 된 ID를 쉽게 얻을 수 있도록 NodeJS의 몽고 드라이버는, 원래의 객체 참조에 _id 필드를 추가합니다 :
collection.insert(objectToInsert, function(err){ if (err) return; // Object inserted successfully. var objectId = objectToInsert._id; // this will return the id of object inserted });
-
==============================
3.ktretyak 말했듯이, 삽입하려면 문서의 ID 가장 좋은 방법은 결과 개체에 insertedId 속성을 사용하는 것입니다. 나는 다음과 같은 사용했다, 그래서 내 경우에는 result._id 작동하지 않았다 :
ktretyak 말했듯이, 삽입하려면 문서의 ID 가장 좋은 방법은 결과 개체에 insertedId 속성을 사용하는 것입니다. 나는 다음과 같은 사용했다, 그래서 내 경우에는 result._id 작동하지 않았다 :
db.collection("collection-name") .insertOne(document) .then(result => { console.log(result.insertedId); }) .catch(err => { // handle error });
당신이 콜백을 사용하는 경우이 같은 일입니다.
-
==============================
4.실제로 삽입에 대한 콜백 함수의 두 번째 매개 변수에 대한을 console.log ()를했다. 삽입 된 개체 자체에서 떨어져 반환 된 정보의 많은 실제로있다. 그래서 아래의 코드는 그것의 ID에 액세스 할 수있는 방법을 설명합니다.
실제로 삽입에 대한 콜백 함수의 두 번째 매개 변수에 대한을 console.log ()를했다. 삽입 된 개체 자체에서 떨어져 반환 된 정보의 많은 실제로있다. 그래서 아래의 코드는 그것의 ID에 액세스 할 수있는 방법을 설명합니다.
collection.insert(objToInsert, function (err, result){ if(err)console.log(err); else { console.log(result["ops"][0]["_id"]); // The above statement will output the id of the // inserted object } });
-
==============================
5.당신은 단순히 거기에만에서 그것을 얻을 수 있도록 몽고는 callbackobject로 전체 문서를 전송합니다.
당신은 단순히 거기에만에서 그것을 얻을 수 있도록 몽고는 callbackobject로 전체 문서를 전송합니다.
예를 들면
collection.save(function(err,room){ var newRoomId = room._id; });
-
==============================
6.지금 당신은 insertOne 방법과 약속의 result.insertedId에서 사용할 수 있습니다
지금 당신은 insertOne 방법과 약속의 result.insertedId에서 사용할 수 있습니다
-
==============================
7.@JSideris, insertedId을 얻기를위한 샘플 코드입니다.
@JSideris, insertedId을 얻기를위한 샘플 코드입니다.
db.collection(COLLECTION).insertOne(data, (err, result) => { if (err) return err; else return result.insertedId; });
-
==============================
8.당신은 "_id"사용 simpley을하려는 경우
당신은 "_id"사용 simpley을하려는 경우
result.insertedId.toString()
// toString 16 진수로 변환합니다
-
==============================
9.자동 데이터 객체를 조작하지 않고 _id 필드를 얻기 위해 비동기 기능을 사용할 수 있습니다 :
자동 데이터 객체를 조작하지 않고 _id 필드를 얻기 위해 비동기 기능을 사용할 수 있습니다 :
async function save() { const data = { name: "John" } await db.collection('users', data ) return data }
의 데이터를 반환합니다 :
{ _id: '5dbff150b407cc129ab571ca', name: 'John' }
from https://stackoverflow.com/questions/14481521/get-the-id-of-inserted-document-in-mongo-database-in-nodejs by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 항목이있는 경우 어떻게 시험하여 MongoDB를 조회하는? (0) | 2019.12.06 |
---|---|
[MONGODB] MongoDB를 사용 몽구스의 대량 upsert (0) | 2019.12.06 |
[MONGODB] MongoDB를이 - 어떻게 수집 안에 중첩 된 항목에 대한 쿼리하는? (0) | 2019.12.06 |
[MONGODB] 임베디드 데이터베이스로 사용할 수 MongoDB를 수 있습니까? (0) | 2019.12.06 |
[MONGODB] 당신은 어떻게 JSON 개체에서 이미지 파일을 배치해야합니까? (0) | 2019.12.06 |