【发布时间】:2013-08-24 16:40:19
【问题描述】:
是否有任何方法可以实现 counters collection 的描述,如使用 node-mongodb-native 的文档中所述?
我试图通过嵌套超过 9000 个回调来避免这样做(恕我直言,这听起来不整洁且不优雅),但编写此本机驱动程序的好人拒绝实现同步/阻塞调用。
本机驱动程序是否提供某种方式来调用用户定义的函数并在查询期间使用它们的返回值?或者是否有另一种提取顺序计数的方法......可能仅来自ObjectID()?
有什么想法吗?
编辑:
这不适用于 _id 字段(由 db.coll.save(x) 处理)
我在集合中有不同类型的文档。如果您知道我的意思,这些中的每一个都需要自己的“类型序列”或“类型序列”。
我已经用几个嵌套调用实现了这个(加上其他东西),如下所示。 doc 是来自客户端的JSON.parse。我必须使用_id(按db.coll.save 排序)和typeserial(当前按db.coll.count 排序,如下所示)将此doc 返回给客户端
///more nesting Async calls above.
db.collection('dox').count( { "type" : doc.type } ,
function( err , count )
{
///{some err checking code here}
doc.typeseq = (1+count);
db.collection('dox').save( doc ,
function( err , doc )
{
///{more code here}
///Finally return JSON.stringified doc with new info/members to client-side
}
);
}
);
我只是想知道是否有更优雅、反异步的方式来获取我的doc.typeserial
【问题讨论】:
-
您只需要两个回调,一个用于获取预定义的原子检索 _id,另一个用于实际插入您的文档。一旦你有你的自动增量_id,它应该总是以这种方式插入的文档是唯一的
标签: node.js mongodb node-mongodb-native