当前位置: 首页 > 面试题库 >

Mongo模式,具有唯一值的字符串数组

郏佐
2023-03-14
问题内容

我正在为mongo文档创建架构,除了防止在非对象数组中重复之外,我可以做所有事情。

我知道addToSet,但我指的是Mongo Schema。

我不想使用$ addToSet来检查Update,而是希望它成为我的架构验证的一部分。

下面的例子。

let sampleSchema = {
   name: { type: 'String', unique: true },
   tags: [{ type: 'String', unique: true }]
}

上面的代码段可防止名称重复值。它允许将标签存储为字符串数组。

但是..我不能将数组限制为唯一的字符串。

{ name: 'fail scenario', tags: ['bad', 'bad', 'array']}

我可以插入此记录,这应该是失败的情况。


问题答案:
const express = require('express');
const router = express.Router();
const mongoose = require('mongoose');
const _ = require('underscore');

let sampleSchema = new mongoose.Schema({
  name: {
    type: 'String',
    unique: true
  },
  tags: [{
    type: 'String'
  }]
})
sampleSchema.pre('save', function (next) {
  this.tags = _.uniq(this.tags);
  next();
});
const Sample = mongoose.model('sample', sampleSchema, 'samples');


router.post('/sample', function (req, res, next) {
  const sample = new Sample(req.body);

  sample.save()
    .then((sample) => {
      return res.send(sample);
    })
    .catch(err => {
      return res.status(500).send(err.message);
    })
});


 类似资料:
  • 我有相同格式的不同唯一字符串。字符串看起来像这样,我想从这个字符串中获取唯一的整数值。每次这个值都必须相同,并且依赖于字符串。我尝试将字符串的每个字符转换为int,然后将字符彼此相加。但如果我有两个字符串具有相同的一组符号,它返回的整数值彼此相等。所以不适合我。如何从唯一字符串生成唯一整数值? 更新: 考虑了所有给定的解决方案后,我决定创建函数,生成唯一的整数值。我希望它能排除碰撞。

  • 问题内容: 我想将字符添加到字符串中,但要确保最终列表中的所有字母都是 唯一的 。 例如:→ 现在,我当然想到了两种解决方案。一种是使用,它将字符与ASCII码映射。因此,每当我遇到一个字母时,它都会将索引设置为。之后,我将扫描列表并附加所有已设置的列表。时间复杂度为 O(n) 。 另一个解决方案是使用和遵循相同的过程。映射完每个字符后,我将对字典中的每个键进行操作。这也将具有 线性 运行时间。

  • 我正在学习Java程序。我需要一个帮助,我想返回的值,存储在if条件。在下面的代码中,如果名称的长度大于或等于6,则先取5个字符,然后追加两次年龄,最后再追加6个字符。 例如:如果字符为alisha,则返回alish2727a

  • 问题内容: 我想查找没有重复数字的10位数字,例如: 目前,我正在使用正则表达式,但只能匹配10位数字(它不检查重复项。我正在使用此正则表达式: 可以使用正则表达式完成此操作,还是有更好的方法来实现此目的? 问题答案: 此正则表达式有效: 这使用锚定的否定前瞻和后向引用来断言没有重复的字符。 观看带有示例的现场演示。 在Java中:

  • 问题内容: 上下文:我是CS n00b,正在通过“破解编码面试”来完成自己的工作。第一个问题要求“实施一种算法以确定字符串是否具有所有唯一字符”。我的(可能是幼稚的)实现如下: 作者建议以下实现: 是什么使作者的实现比我的更好(FWIW,作者的解决方案是在Java中,我将其转换为Python -我的解决方案是无法在Java中实现的解决方案)吗?或者,更一般而言,解决该问题需要什么?我采用的方法有什

  • 我试图用一种特定的格式将“即时”格式化为“字符串”。基于这里的问题,我正在做这个- 有什么关于为什么会这样的建议吗? 谢谢