自动增加流星简单模式成员

Posted

技术标签:

【中文标题】自动增加流星简单模式成员【英文标题】:Autoincrement a meteor simpleschema member 【发布时间】:2015-06-24 04:31:36 【问题描述】:

这是我想要做的:

SimpleSchema.FaqSchema = new SimpleSchema
  order:
    type: Number
    autoValue: ->
      # somehow increment this by 1
  updatedAt:
    type: Date
    autoValue: ->
      new Date
  updatedBy:
    type: String
    autoValue: ->
      Meteor.userId()
  question: type: String
  answer: type: String

不幸的是,Meteor 文档或 simpleschema 文档中没有任何内容解释如何执行此操作。这里有 mongo 文档:http://docs.mongodb.org/manual/tutorial/create-an-auto-incrementing-field/

但是,这并没有真正的帮助。

感谢任何帮助。架构在 coffeescript 中,但可以使用 http://js2.coffee/

进行转换

【问题讨论】:

【参考方案1】:

在服务器端创建一个 Meteor 方法,在插入期间将 order 字段增加 1。此方法使用 meteor-mongo-counter 包,该包实现了 MongoDB 文档中描述的“计数器集合”技术Create an Auto-Incrementing Sequence Field

服务器

Meteor.methods
    "insertDocument": (doc) ->
        doc.order = incrementCounter "order"
        MyCollection.insert doc
        doc.order

客户

doc = 
    question: "Question 1"
    answer: "Answer 1"

# Instead of inserting with Collection.insert doc, use Meteor.call instead

Meteor.call "insertDocument", doc, (err, result) ->
    if result console.log "Inserted order number #result" 

【讨论】:

没想到原子操作。很好的发现。

以上是关于自动增加流星简单模式成员的主要内容,如果未能解决你的问题,请参考以下文章

增加连续自动曝光模式的亮度级别

C#各版本新增加功能

流星获取最大会员注册号

一工厂模式

java设计模式之简单工厂模式

工厂方法模式