dou*_*ira 4 javascript mongoose mongodb node.js mongoose-schema
我想用不是_id. 该文档说它只允许_id在子文档中将架构选项标志设置为 false。另外,我希望主键是 aString而不是ObjectId. 这可能吗?
使用二级索引是一种选择,但不是一个很好的选择,因为我希望主键具有正确的名称。当我不需要时,我也不想摆弄两个不同的索引。
这设置documentId为二级索引,但这使得主键无用,因为我只想选择 bydocumentId而不是_id最终自动设置的任何内容。
const DocumentSchema = new Schema({
documentId: { type: String, index: true }
})
Run Code Online (Sandbox Code Playgroud)
我想做类似的事情
const DocumentSchema = new Schema({
documentId: String
})
Run Code Online (Sandbox Code Playgroud)
然后告诉它用documentId作主键。
说明:我特别不想将_id用作键,因为它的名称无用,而我想用documentId作主键。
您可以_id在架构阶段手动定义字段,例如:
const DocumentSchema = new Schema({
_id: String //or number, or (increment) function,
...
other_field: BSON_type,
})
Run Code Online (Sandbox Code Playgroud)
更新了 Nestjs
要手动覆盖或定义_id架构中的字段,请使用以下示例:
/**
* extends Document is a Mongoose Document from 'mongoose'
* and don't forget about Nest Schema decorator
*/
@Schema()
export class Key extends Document {
@Prop()
_id: string;
@Prop({ required: true })
secret: string;
}
Run Code Online (Sandbox Code Playgroud)
禁用通过_id子文档@Prop@Prop({ _id: false })
如果您正在寻找一系列带有_id示例的嵌入式文档,您可能想看看我关于它的另一个问题。
并_id在insert阶段之前为您的文档添加价值,或通过您的功能或在零件中这样的npm模块生成它。您唯一应该确保的是,您的自定义生成的值必须是唯一的。如果他们不这样做,mongo 在插入没有唯一值的文档时会返回一个错误。schema_id_id
| 归档时间: |
|
| 查看次数: |
6548 次 |
| 最近记录: |