javascript - 如何在 mongo-go-driver 中使用 js 函数
问题描述
目标是在某些集合中实现计数器字段(一种自动增量)。我可以通过 mongoshell 保存这个函数:
> db.system.js.save({
_id: "getValueForNextSequence",
value : function(fieldName){
var sequenceDoc = db.counters.find({sequenceName: fieldName }).toArray()[0];
if (sequenceDoc.sequence > 9998){
sequenceDoc = db.counters.findAndModify({
query:{sequenceName: fieldName },
update: {$set:{sequence:1000}},
new:true
});
}else {
sequenceDoc = db.counters.findAndModify({
query:{sequenceName: fieldName },
update: {$inc:{sequence:1}},
new:true
});
}
return sequenceDoc.sequence;
}
})
我有counters
收集存储数据的地方getValueForNextSequence
:
{fieldName: "shotID" , sequence : 0 }
然后调用它(再次从外壳):
db.loadServerScripts()
> db.STORE.insert({
... "shortID":getValueForNextSequence("shortID"),
... "item_short_name": "DEF",
... "specification": "book",
... "category": "fictional",
... "seller": "best_buy",
... "network": "XYZ",
... "plan": "regular"
... })
WriteResult({ "nInserted" : 1 })
但我不明白我怎么能对官方的 go-mongo-driver 做同样的事情。
解决方案
推荐阅读
- xcode - Xcode 11.2.1 对最小部署目标感到困惑
- ios - iOS SwiftUI:ScrollView 忽略顶部安全区域
- php - 如何动态设置 Index.php?
- android - PWA - Android、iOS、MacOS、Windows Store、Chrome 添加到主屏幕 - 多域多租户应用程序的问题
- laravel - 图像未显示在 laravel 6 的刀片中
- spring-boot - 从 application.properties 读取的属性返回 null
- javascript - 自动插入新 React 组件的方法,即“可插入扩展”
- javascript - 如何从第二个应用程序调用表单并执行操作?
- javascript - 在尝试从索引文件中使用 JSX react/react-in-jsx-scope 时,“React”必须在范围内吗?
- javascript - 同时使用 $(this) 和 addClass/removeClass 来显示/隐藏底部导航栏的内容