Javascript 如何在Meteor中注销收藏?
我正在尝试实现简单的功能,允许Meteor应用程序检查某个MongoDB字符串是否可以成功用于连接。为此,我有一个事件触发器,一个服务器方法,它建立到MongoDB的连接并返回集合中的文档数。 我使用的(简化)方法接受mongo连接字符串和集合名称,并返回集合中的文档数Javascript 如何在Meteor中注销收藏?,javascript,mongodb,collections,meteor,Javascript,Mongodb,Collections,Meteor,我正在尝试实现简单的功能,允许Meteor应用程序检查某个MongoDB字符串是否可以成功用于连接。为此,我有一个事件触发器,一个服务器方法,它建立到MongoDB的连接并返回集合中的文档数。 我使用的(简化)方法接受mongo连接字符串和集合名称,并返回集合中的文档数 var mongoUrl=”mongodb://user:password@192.168.0.98:27017/mydb”; var collectionName=“测试”; 流星法({ testDbConnection:函数
var mongoUrl=”mongodb://user:password@192.168.0.98:27017/mydb”;
var collectionName=“测试”;
流星法({
testDbConnection:函数(mongoUrl,collectionName){
var数据库=新的MongoInternals.RemoteCollectionDriver(mongoUrl);
TestCollection=newmongo.Collection(collectionName,{{u-driver:database});
var numberOfDocs=TestCollection.find().count();
//帮助:如何注销TestCollection?
返回文件编号;
}
});
该方法的第一次调用有效,但因为我没有注销TestCollection
所有后续调用都失败,因为Meteor已经为test
集合定义了insert
方法
Exception while invoking method 'testDbConnection' Error: A method named '/test/insert' is already defined
at packages/ddp/livedata_server.js:1444:1
at Function._.each._.forEach (packages/underscore/underscore.js:113:1)
at [object Object]._.extend.methods (packages/ddp/livedata_server.js:1442:1)
at [object Object].Mongo.Collection._defineMutationMethods (packages/mongo/collection.js:886:1)
at new Mongo.Collection (packages/mongo/collection.js:208:1)
at [object Object].Meteor.methods.testDbConnection (app/app.js:55:24)
at maybeAuditArgumentChecks (packages/ddp/livedata_server.js:1599:1)
at packages/ddp/livedata_server.js:648:1
at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1)
at packages/ddp/livedata_server.js:647:1
我如何才能在Meteor中注销收藏以执行这些临时数据库连接?虽然我还没有得到您直接问题的答案,但我有一个想法可能对您的搜索有所帮助 我会考虑使用“工作者”的方法,这是你的流星应用程序,执行一项任务并死亡。那你就不用担心清理了
- 如果使用速度,你可以启动一个“自毁镜”。你可以启动它并杀死镜子
- 如果不使用Velocity,您仍然可以使用上述方法,从主应用程序中分叉一个子进程启动
.meteor/../build/main.js
旁注:自从我们(velocity团队)为mirrors做了这项工作以来,我一直在考虑编写一个Meteor worker软件包来实现上述功能。因为创建
集合
不仅仅是为mongo集合提供一个接口,对于那些简单的即席查询,只使用mongoternals
或npmmongodb
不是更好吗?事实上,使用var numberOfDocs=database.open(collectionName).find().count()确实可以很好地工作但对我来说,这个问题仍然存在。