自动增加流星simpleschema成员

时间:2015-04-17 10:53:31

标签: mongodb meteor coffeescript

这是我正在尝试做的事情:

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 个答案:

答案 0 :(得分:3)

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

服务器

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}"