【发布时间】:2018-06-25 22:36:20
【问题描述】:
我试图在 mongoose / Node.js / Express 中为我的 我的架构模型中的 _id 字段...
/**Demonstrator
*
*/
var mongoose = require('mongoose')
var uuid = require('node-uuid')
require('mongoose-uuid2')(mongoose);
var Schema = mongoose.Schema;
require('mongoose-long')(mongoose);
var Status = require('./Status');
var StatusSchema = Status.Schema;
var SchemaTypes = mongoose.Schema.Types;
const uuidv4 = require('uuid/v4');
var UUID = mongoose.Types.UUID;
var DemonstratorSchema = new Schema({
//_id: SchemaTypes.Long;
_id: { type: String, default: uuidv4()},
id2: SchemaTypes.Long,
Test: String,
})
module.exports = mongoose.model("Demonstrator", DemonstratorSchema);
console.log("DemonstratorSchema created!");
我还尝试编写一个自己的函数,例如这篇文章: Using UUIDs in mongoose for ObjectID references,但这也不起作用...它只是不会在我的数据库中使用猫鼬创建默认生成的 UUID,为什么?
编辑:我刚刚发现,它创建了一个具有 32 字节 UUID 值的 UUID 或字符串字段,我只是无法直接在 mongo shell 中执行此操作,尽管我认为我的 Schema 有点强制执行此操作,但它合乎逻辑的是,这是无稽之谈,因为 mongo Shell 不知道我的后端约束;)对此感到抱歉....但是也可以安全地假设,任何来自生成的 REST API 端点(POST)并保存在我的后端,是否会自动创建 UUID?
推荐使用什么作为 UUID 版本? v1?还是 v4 甚至 v5?
【问题讨论】:
标签: node.js mongodb mongoose uuid