相关疑难解决方法(0)

mongoDB/mongoose:如果不为null,则为唯一

我想知道是否有办法强制一个唯一的集合条目,但只有当条目不为空时.e示例模式:

var UsersSchema = new Schema({
    name  : {type: String, trim: true, index: true, required: true},
    email : {type: String, trim: true, index: true, unique: true}
});
Run Code Online (Sandbox Code Playgroud)

在这种情况下,'email'不是必需的,但如果保存'email',我想确保此条目是唯一的(在数据库级别).

空条目似乎得到值'null'所以每个条目都没有电子邮件与'unique'选项崩溃(如果有不同的用户没有电子邮件).

现在我正在应用程序级别上解决它,但是希望保存该数据库查询.

谢谢

mongoose mongodb node.js

91
推荐指数
3
解决办法
3万
查看次数

猫鼬独特的属性仍然允许我保存到数据库

我假设在字段中添加unique:true将停止使用相同的值保存到数据库。但是即时消息仍然允许这样做。

“猫鼬”:“ ^ 5.4.19”,

const SessionSchema = new Schema({

    jobId: {
        type: String,
        required: false,
        unique: true,
        index: true,

    },
    productId: {
        type: String,
        required: true,
    },
    status: {
        type: String,
        default: "Pending",
    },
    mode: {
        type: String,
        default: "authentication",
    },
    result: {
        type: Schema.Types.Mixed,
    },
    requests: [RequestSchema],
    callback_at: {
        type: Date,
    },

}, {
        timestamps: { createdAt: "created_at", updatedAt: "updated_at" },
    });
Run Code Online (Sandbox Code Playgroud)

我已经尝试删除并重新创建集合。参见下图,我可以使用相同的jobId创建1的新会话。

在此处输入图片说明

public store = async (req: Request, res: Response): Promise<any> => {

        const input = req.body;

        let …
Run Code Online (Sandbox Code Playgroud)

mongoose node.js mongoose-schema

0
推荐指数
1
解决办法
83
查看次数

标签 统计

mongoose ×2

node.js ×2

mongodb ×1

mongoose-schema ×1