这是我正在尝试做的事情:
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/
进行转换答案 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}"