我试图通过对数据库中的文档进行计数,并使用该数字来创建_id(假设第一个_id为0)来为我的Mongoose模型动态创建_id。但是,我无法从值中设置_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' }
如果您知道发生了什么事,请告诉我。
您要么需要将该_id
属性声明为架构的一部分(将其注释掉),要么使用该_id
选项并将其设置为false
(您正在使用该id
选项,该选项会创建一个虚拟的getter强制_id
转换为字符串,但仍创建了_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 });
我有一个简单的模式,里面有一个数组。当我创建一个包含映射数组中的项的新项时,映射数组中的项会自动分配_ID。但是,当我试图将项添加到现有项的映射数组时,新的映射是用的_id创建的。我如何让mongoose为我生成这个_ID?我在文件里找不到。
我创建一篇文章。 宇宙数据库设置其 我将其设置为<-how?
Cosmos存储过程将每个记录的PumperID字段设置为默认值会是什么样子? 我们需要这样做来修复一些数据,因此该过程将访问每个具有PumperID字段的记录(并非所有文档都有此字段),并将其设置为默认值。
问题内容: 这是我用来连接数据库的代码: 今天,我将Mongoose更新到版本4.11.0,并且在运行测试时收到此警告: 我找不到有关如何“设置useMongoClient”的任何信息。 你们知道怎么做吗? 问题答案: 没有Typescript, 您几乎可以忽略该问题并使用。 如果您确实想避免出现警告,请避免使用4.11.0版本。 我更新到4.11.1版本,因为@类型/猫鼬@尚未进行更新4.7.1
问题内容: 我正在使用Spring 3.1.1.RELEASE,Hibernate 4.1.0.Final和JPA 2.0。有没有一种方法可以配置Spring事务以在不使用Java代码的情况下执行事务后提交?换句话说,我想将刷新模式设置为在应用程序上下文文件,hibernate配置文件或persistence.xml文件中提交。我的Spring交易服务类看起来像 我的应用程序上下文设置如下: 我的
问题内容: 我想将配置文件名称设置为整个程序包,但我不知道如何。如果在哪里不是简单的方法,那么我必须用注释标记包和子包中的每个类。 标签不支持这样的属性,所以我不知道。 问题答案: 您可以将个人资料设置为: 文件-用于xml配置 Java配置类 在它们的每一个中,您都可以对特定的软件包使用组件扫描。