草庐IT

node.js - 嵌入式文档的 Mongoose 枚举验证

我的Mongoose模式中有两个枚举验证器:varUserSchema=newSchema({facebookId:{type:Number,required:true,unique:true},fullName:{type:String,required:true},firstName:String,lastName:String,locale:String,gender:{type:String,uppercase:true,enum:['M','F']},matchPreferences:{gender:{type:String,uppercase:true,enum:['M',

node.js - 如何在 Mongodb 的 Upsert 上自动更新时间戳

如果我有一个带有键expires的Schema;每次更新文档时,如何让该键的值自动更新?这可能更复杂,但是,我正在upserting所以这个值需要在初始insert上设置,然后在每个upsert上更新>.因此,当文档被插入时:{expires:*anhourfromtheinsert*}当它是更新d时(通过upsert):{expires:*anhourfromtheupdate*}如果Mongoose内置了此功能,我正在使用它。如果Mongodb不支持它,Mongoose也不支持,我将只需要计算expires:并更新值,但它会很高兴在Mongodb中自动完成这项工作!事实上,它不会真

node.js - 简单的 Mongoose 唯一验证我做错了什么?

我已经阅读了文档以及其他StackOverflow帖子,但我无法弄清楚我在这里做错了什么......这应该是一个简单的验证来检查唯一的字符串并根据对于文档和其他StackOverflow文章,这应该会引发错误并且不会保存重复记录。在这种情况下,它似乎根本无法验证...我曾尝试删除整个集合并再次运行该应用程序,结果却发现了相同的行为。我正在按照thispost中描述的推荐验证方式进行操作.在此先感谢您对我的帮助。NodeJS新手。bucket.js:varmongoose=require('mongoose');varSchema=mongoose.Schema;varbucketSch

jquery - 使用 Node.js 和 async.queue 将大型 CSV 插入 MongoDB

我正在尝试将大型csv文件(100K行;10-100M+)上传并插入到mongo中。下面的代码是我用来接受来自表单的输入并首先将记录插入到我所有csv的元数据集合中,然后将csv的记录插入到它自己的集合中的路径。它适用于较小的文件(数千行),但当它达到50K+的顺序时会花费很长时间。下一个片段是将csv流用于较大的文件(见下文),但在尝试使用该流时出现错误。问题:有人可以帮助将第一个示例修改为流,以便它可以处理大型csv而不会挂起。exports.addCSV=function(req,res){varbody=req.body;fileSystem.renameSync(req.fi

node.js - 蒙哥错误: $all requires array

我正在使用sailsjsmongodb和node.js我在mongodb查询错误后收到错误请帮忙!我想获得与$all:[senderID,sendToID]完全匹配的那些消息的结果这是我在mongodb中的文档“消息”。{"users":["52ed09e1d015533c124015d5","52ed4bc75ece1fb013fed7f5"],"user_msgs":[],"createdAt":ISODate("2014-02-04T11:59:53.220Z"),"updatedAt":ISODate("2014-02-04T11:59:53.220Z"),"_id":Obje

node.js - 有没有办法用 mongoskin 列出集合?

我已经建立了数据库连接。我需要列出数据库中集合的名称。可能吗? 最佳答案 db.collectionNames(function(err,collectionArrayResult){//NowdosomethingwithcollectionArrayResult});结果是一个具有“名称”属性的对象数组,如下所示:[{name:'.'},...]不过要小心-.system.indexes也会被退回。 关于node.js-有没有办法用mongoskin列出集合?,我们在StackOve

node.js - 找不到将 leveldb 转储到平面文件的有效方法

我将LevelDB用作本地进程的一部分,当所有这些都完成后,它有大约10-1亿个JSON条目。我需要将它们转换成一种可移植格式,最好是一个或多个csv(或者甚至是行分隔的json)文件,以导入到单独的mongodb系统中。我在node.js中做了一个快速测试,将数据库内容流式传输到文件(使用node-levelup,在我的机器上,1000万对花费了大约18.5分钟。看起来很慢。寻找有关从leveldb更快转储/导出的建议。我考虑过使用mongodb作为本地处理的存储,因为mongoexport快得多,但是在设置中有更多的开销,因为我需要多个分片来获得更快的速度在我的写作中。

node.js - Jade 循环通过 db 构建 <div>,每个使用 bootstrap 有 3 个内容 block ?提供的例子

我正在使用这个主题http://twbs.github.io/bootstrap/examples/justified-nav/我想在jadeView中实例化我的集合的文档并(稍后创建分页),但我的问题是关于有一个HTML或Jade示例只是为了弄清楚进一步的过程。这是我要循环的div:Safaribugwarning!Asofv7.0.1,Safariexhibitsabuginwhichresizingyourbrowserhorizontallycausesrenderingerrorsinthejustifiednavthatarecleareduponrefreshing.Do

Javascript - Node.js - 防止函数的多次执行

我正在使用Socket.io创建一个rochambo游戏。玩家将他们的赌注添加到等待列表中,Node在mondogDBsession中检查玩家是否有足够的钱这样做,然后在将其发送给其他玩家之前创建赌注。我的代码有效,但如果我要求非常快地创建多个投注,Node没有时间在下一个投注到达之前更新mongoDB中的玩家余额,尽管我有等待名单。因此,玩家即使没有足够的钱也可以下注,我想避免这种情况。我找不到防止这种情况发生的方法。当然有回调或递归函数,但我没能成功。对不起我的英语不好,我是法国人:)这是代码的简化版本:socket.on('placerunpari',function(scree

node.js - NodeJS 加密 : re-use cipher object to improve performance

我想要nodejs和加密的MongoDB数据库。我担心性能。考虑以下用例:我有一个加密数据库,我从中检索加密字符串列表(例如名称)[_encrypted_name_1,_encrypted_name_2,...]我想解密该列表中的所有元素因为我很关心性能,所以我做了一些测试来解决这个问题。我观察到,与加密/解密非常大的字符串相比,加密/解密大量小字符串的速度非常慢。考虑以下示例:varcrypto=require('crypto'),_=require('lodash'),encryptedStringArray=[],decryptedStringArray=[],encrypted