草庐IT

hook_cron

全部标签

node.js - 使用 Mongoose 中间件删除钩子(Hook)从数组中级联删除

我正在使用Mongodb和Mongoose构建一个Node.jsExpressRESTfullAPI。这是我的模式:varUserSchema=newmongo.Schema({username:{type:String},password:{type:String,min:8},display_name:{type:String,min:1},friends:{type:[String]}});UserSchema.post('remove',function(next){console.log({friends:this._id});//totestifthisgetsreache

node.js - 在不关闭数据库连接的情况下将 Node.js 脚本作为 CRON 作业运行最终会杀死所有 RAM 吗?

我正在构建将作为CRON作业运行的Node.js脚本。(完整的终端脚本)。这些脚本使用API和MongoDB(native驱动程序)从周围获取数据。我没有使用db.close()语句,因为该脚本永远不会自行结束(或者至少从终端看起来是这样),要完成它,它必须按CTRL+C取消。当时我在写这些脚本的时候,Stackoverflow的某个人告诉我无论如何都不需要关闭连接。所以我顺其自然。现在我想知道,这些脚本实际上还在运行吗?由于这些将作为CRON作业以较小的间隔运行,这是否意味着这些脚本最终会从服务器中删除RAM?这是否意味着将有数千个脚本在运行并等待db.close()语句?示例代码:

mongodb - 是否可以创建一个 Mongoose Hook 以将投影应用于所有查询

我想阻止用户每次请求他们的信息时通过网络发送用户的加密密码。我知道在mongo中我可以应用投影来实现这一点db.users.findByID(_id,{password:0})但我更希望有某种.pre()Hook,它将应用于每个查询。这或功能等价物是否可能? 最佳答案 您可以使用select配置一个字段,使其默认从查询中排除:letUserSchema=newSchema({...password:{type:String,select:false},...});如果您确实需要返回该字段,您可以在每个查询的基础上覆盖它:db.use

node.js - 在预保存 Hook 中更新

我有这样的用户模式constuserSchema=newSchema({username:{type:String,unique:true,required:true,},cardIds:[{type:Schema.Types.ObjectId,ref:'cards',}],})mongoose.model('users',userSchema)我试图在用户的预保存Hook中做两件事:首先,使用用户ID保存每张卡,其次,将cardIds添加到用户。我的代码:constCard=mongoose.model('cards')userSchema.pre('save',function(n

javascript - 具有引用值的 MongooseJS 预保存 Hook

我想知道是否有可能在MongooseJS的预保存Hook中获取模式字段的填充引用值?我正在尝试从ref字段中获取一个值,我需要ref字段(下面,即User字段),以便我可以从中获取时区。架构:varTopicSchema=newSchema({name:{type:String,default:'',required:'PleasefillTopicname',trim:true},user:{type:Schema.ObjectId,ref:'User'},nextNotificationDate:{type:Date},timeOfDay:{//Timeofdayinseconds

node.js - 在 mongoose 中填充 'find' 的 post hook middlewhere

我有一个文章架构,用于用户在我的网站上发布的文章。它引用了用户集合:varArticleSchema=newSchema({title:{//NOMARKDOWNFORTHIS,juststraightuptextforseparatingfromcontenttype:String,required:true},author:{type:Schema.Types.ObjectId,ref:'User'}});我想在所有find/findOne调用上有一个posthook来填充引用:ArticleSchema.post('find',function(doc){doc.populate

node.js - 有条件地跳过 mongoose 钩子(Hook)函数

我有一个预保存钩子(Hook)来加密User模式的password字段,例如:varschema=newmongoose.Schema({username:'string',password:'string'});schema.pre('save',encrptPasswordHook);schema.pre('update',encrptPasswordHook);schema.pre('findOneAndUpdate',encrptPasswordHook);...通过这种方式,每次创建或更新User时,我都会在我的数据库中加密密码字符串。现在我有一个包含旧User数据和加密密码

java - Meteor Collection-hooks 不适用于外部数据库修改

我周围散布着一堆传感器。只要检测到环境发生变化,这些传感器就会传输其状态。数据进入服务器(使用Java构建),在那里它处理该信息,然后将其插入到mongoDB中。我的meteor应用程序本质上是此信息的仪表板。我想在这些条目进入后立即对其进行进一步处理(分析)。我开始使用Collection-Hooks,它在Meteor应用程序对数据库进行更改时非常有效,但在mongoJava-Driver更改数据库时效果不佳。我需要收集Hook来检测从Java驱动程序添加到我的mongoDB的新文档。我也没有与收集Hook结婚,欢迎任何其他建议的服务。 最佳答案

javascript - MongoDB/mongoose - 后保存 Hook 未运行

我有这个模型/架构:constInviteSchema=newSchema({inviter:{type:mongoose.Schema.Types.ObjectId,ref:'Account',required:true},organisation:{type:mongoose.Schema.Types.ObjectId,ref:'Organisation',required:true},sentTo:{type:mongoose.Schema.Types.ObjectId,ref:'Account',required:true},createdAt:{type:Date,defau

mongodb - 在 mongodb 中索引正在进行的事件还是我们需要一个 cron?

对不起,如果这个问题很愚蠢。我不熟悉数据库的整个索引,想知道我是否发出了以下命令>db.posts.ensureIndex({location:"2d"})数据库是否会一直被索引,即使有新的条目被发布?还是我需要在每次输入新条目后输入此命令?对于包含2000多个条目的数据库,索引是否也有很大的不同? 最佳答案 一旦索引就位,它将始终用于任何后续的读取和写入。您无需继续执行命令。请记住,在现有的大型数据集上发出ensureIndex会导致它立即为那里的所有内容编制索引,并且可能会阻塞。这里有关于索引建议的完整官方常见问题解答:http