在集合中执行单个记录

时间:2015-01-12 16:30:42

标签: mongodb mongoose

我正在尝试使用MongoDB作为一种简单的缓存机制来存储少量记录。这些记录来自外部服务,很少改变(尽管它们有可能偶尔改变一次)。

有没有办法在集合上强制执行单个记录?由于ID可能会发生变化,因此我不希望将_id设置为API的ID,并且强制API ID的唯一性不会处理最终的ID更改。

我可以通过插入记录并删除所有不包含更新ID的记录来自行处理这个问题,但是我希望MongoDB中的某些功能可以处理这个问题。

我现在想避免添加专用的缓存解决方案,虽然看起来这比使用MongoDB这个用例更好。

1 个答案:

答案 0 :(得分:0)

在考虑之后,我选择稍微改变一下。

我要将我想要的每个唯一记录放入一个集合中(这只是少数几个)。我要添加一个"组"我将用于确定我存储的记录类型的字段。我还要求所有记录都要求它,要求它是唯一的,并添加验证以确保它属于我想要的组。

有点令人困惑,这里有一点我的架构来展示我所说的:

isValidSet = function(val) {
  [ 'branch', 'department', 'division', 'group' ].indexOf( input || '' ) > -1
};

cacheSchema = new Schema({
  code : { type : String, required : true },
  name : { type : String, required : true },
  shortName : { type : String, required : true },
  group : { 
    type : String, 
    required : true, 
    unique : true, 
    validate : [ isValidGLSet, 'Invalid GL group!' ] }
});