基本的に、コレクション内のドキュメントをカウントし、新しいドキュメントを _id として設定しようとしています。いくつかの組み合わせを試しましたが、どれもうまくいかないようです。
これが私が試したことです:
var count = PostModel.find( function( err, posts ) {
if ( !err ) {
return posts.length;
}
else {
return console.log( err );
}
});
var post = new PostModel({
_id: count,
title: request.body.title,
content: request.body.content,
tags: request.body.tags
});
戻り値:
{ message: 'Cast to number failed for value "[object Object]" at path "_id"',
name: 'CastError',
type: 'number',
value:
{ options: { populate: {} },
safe: undefined,
_conditions: {},
_updateArg: {},
_fields: undefined,
op: 'find',
model:
{ [Function: model]
modelName: 'Post',
model: [Function: model],
options: undefined,
db: [Object],
schema: [Object],
collection: [Object],
base: [Object] } },
path: '_id' }
この:
var post = new PostModel({
_id: PostModel.find( function( err, posts ) {
if ( !err ) {
return posts.length;
}
else {
return console.log( err );
}
}),
title: request.body.title,
content: request.body.content,
tags: request.body.tags
});
同じエラーを返します。ただし、次を個別に追加すると、コレクションの長さが記録されます。
PostModel.find( function( err, posts ) {
if ( !err ) {
return console.log(posts.length);
}
else {
return console.log( err );
}
});
私も色々と使ってみcount()
ましたが、上手くいきませんでした。カウントのコレクションをクエリし、それを _id として設定する方法についての洞察は非常に役立ちます。