[MONGODB] 어떻게 몽구스의 DB 문서에 _id 설정하는 방법?
MONGODB어떻게 몽구스의 DB 문서에 _id 설정하는 방법?
나는 동적으로 DB에 문서를 계산하여 내 몽구스 모델 _id의를 만들려고하고 _ID를 만드는 데 그 번호를 사용하고 (첫 번째 _id 가정은 0이다). 그러나, 나는 내 값으로부터 세트에 _id를 얻을 수 없습니다. 여기 내 코드는 :
//Schemas
var Post = new mongoose.Schema({
//_id: Number,
title: String,
content: String,
tags: [ String ]
});
var count = 16;
//Models
var PostModel = mongoose.model( 'Post', Post );
app.post( '/', function( request, response ) {
var post = new PostModel({
_id: count,
title: request.body.title,
content: request.body.content,
tags: request.body.tags
});
post.save( function( err ) {
if( !err ) {
return console.log( 'Post saved');
} else {
console.log( err );
}
});
count++;
return response.send(post);
});
나는 _id에게 다양한 방법을 설정하려고했지만, 나를 위해 작동하지 않습니다. 여기에 최신의 오류는 다음과 같습니다
{ message: 'Cast to ObjectId failed for value "16" at path "_id"',
name: 'CastError',
type: 'ObjectId',
value: 16,
path: '_id' }
당신은 무슨 일이 일어나고 있는지 알고 있다면 알려 주시기 바랍니다.
해결법
-
==============================
1.당신 스키마의 일부로서 _id 속성을 선언하거나 필요하면 문자열로 캐스트 _id에 가상 게터를 생성 ID 옵션을 사용하고 있습니다 ((당신이 그것을 주석), 또는 _ID 옵션을 사용하고 false로 설정 하지만 여전히 따라서 _id OBJECTID 속성, 당신이 얻을 주조 오류를) 만들었습니다.
당신 스키마의 일부로서 _id 속성을 선언하거나 필요하면 문자열로 캐스트 _id에 가상 게터를 생성 ID 옵션을 사용하고 있습니다 ((당신이 그것을 주석), 또는 _ID 옵션을 사용하고 false로 설정 하지만 여전히 따라서 _id OBJECTID 속성, 당신이 얻을 주조 오류를) 만들었습니다.
하나이 그래서 :
var Post = new mongoose.Schema({ _id: Number, title: String, content: String, tags: [ String ] });
아니면 이거:
var Post = new mongoose.Schema({ title: String, content: String, tags: [ String ] }, { _id: false });
-
==============================
2.@의 robertklep의 첫 번째 코드 조각이 나를 위해 일을하지 않습니다 (4 몽구스), 또한 장애인 _id 필요
@의 robertklep의 첫 번째 코드 조각이 나를 위해 일을하지 않습니다 (4 몽구스), 또한 장애인 _id 필요
var Post = new mongoose.Schema({ _id: Number, title: String, content: String, tags: [ String ] }, { _id: false });
이것은 나를 위해 작동
-
==============================
3.사용자 정의 몽구스에 _id 작성 및 몽고 _id로 해당 ID를 저장합니다. 사용 몽고이 같은 문서를 저장하기 전에 _ID.
사용자 정의 몽구스에 _id 작성 및 몽고 _id로 해당 ID를 저장합니다. 사용 몽고이 같은 문서를 저장하기 전에 _ID.
const mongoose = require('mongoose'); const Post = new mongoose.Schema({ title: String, content: String, tags: [ String ] }, { _id: false }); // request body to save let post = new PostModel({ _id: new mongoose.Types.ObjectId().toHexString(), //5cd5308e695db945d3cc81a9 title: request.body.title, content: request.body.content, tags: request.body.tags }); post.save();
from https://stackoverflow.com/questions/19760829/how-to-set-id-to-db-document-in-mongoose by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 어떻게 몽구스를 사용하여 MongoDB의 트랜잭션을 사용 하는가? (0) | 2019.12.06 |
---|---|
[MONGODB] 몽고 컬렉션에서 특수 문자 작업 (0) | 2019.12.06 |
[MONGODB] upsert 배열 데이터를 몽고 수 있습니까? (0) | 2019.12.06 |
[MONGODB] 가치 MongoDB의 속성 이름을 단축되어 있습니까? (0) | 2019.12.05 |
[MONGODB] MongoDB의 통합 프레임 워크를 사용하여 소수점 이하 2 자리까지 반올림 (0) | 2019.12.05 |