草庐IT

node.js - mongoose文档删除后再次保存

我尝试使用mocha对我的restifynode.js-app进行单元测试,而不模拟mongodb数据库。由于某些测试会更改数据库,因此我想在每次测试前重置其内容。在我的测试中,我还需要访问我正在创建的Mongoose文档。因此,我必须在beforeEachHook之外定义它们(请参阅下面的user文档)。但是,清空数据库后,似乎无法再次保存文档。下面是我想出的一个最小示例。在这种情况下,第二次测试将失败,因为user不会被第二次保存。如果我删除第一个测试,beforeEach只会被调用一次并且一切正常。此外,如果我在beforeEachHook中定义user,它也能正常工作。所以我的

node.js - 无法将随机字符串分配给 _id 字段。

我正在尝试使用MONK将文档保存到mongodb中开车。我的对象有一个字段叫myid,是一个未知长度的字符串。我非常倾向于将此ID用作文档的_id,但在将值分配给_id字段并保存文档后,我收到如下错误:Error:ArgumentpassedinmustbeasingleStringof12bytesorastringof24hexcharacters这是MONK或MongoDB驱动程序引入的一些限制吗?有没有办法解决这个问题?在mongodbshell中,你可以使用任何值作为_id; 最佳答案 是和尚抛出的错误。您可以重写id函数

node.js - 在 ref Mongoose 中创建唯一索引

我有这些架构:varuserSchema=newmongoose.Schema({username:{type:String,unique:true}});mongoose.model('User',userSchema);varfooSchema=newmongoose.Schema({title:{type:String,trim:true},owner:{type:mongoose.Schema.Types.ObjectId,ref:'User'}});fooSchema.index({title:1,owner:1},{unique:true});//doesnotworkmo

node.js - 我如何在 CasperJS 中需要 MongoDB?

我正尝试从CasperJS中将记录插入到MongoDB集合中,但在第一个障碍时我被阻止了。我首先通过在应用程序的根目录中运行以下命令来安装mongodb:npminstallmongodb这成功完成,没有任何错误。我有一个名为server.js的CasperJS文件,其中包含这一行:vardb=require('mongodb');当我尝试用它运行casperjsserver.js时,出现以下错误:js-bson:Failedtoloadc++bsonextension,usingpureJSversionError:Cannotfindmodule'util'/home/aaron/

node.js - Mongoose:在保存时根据父字段值设置子文档字段值

这几乎肯定在其他地方涵盖过,但是:如果我有一个带有嵌入式子文档的模式,就像这样:varChildSchema=newSchema({name:{type:String,trim:true},user:{type:String,trim:true}})varParentSchema=newSchema({name:{type:String,trim:true},child:[ChildSchema]})如何在同一个.save()操作中将ParentSchema的名称保存到ParentSchema.name和ChildSchema.name?以下根本不起作用。ChildSchema.pre

node.js - 如何知道 mongodb nodejs native 的当前池大小?

我正在做一些维护mongodb连接的研究。请帮助我如何知道mongodbnodejsnative的当前池大小。 最佳答案 您可以从以下位置获取当前池大小:db.serverConfig.poolSizedb是Db从MongoClient.connect返回的对象.默认池大小为5。 关于node.js-如何知道mongodbnodejsnative的当前池大小?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.

node.js - Mongo 的 Cursor.nextObject 有时会错误返回 Null?

我正在合并async.queue和Cursor.nextObject遍历游标并对返回的文档执行一些异步工作。有一个很棒的小包已经可以做到这一点,https://www.npmjs.org/package/mongo-cursor-processing,但遗憾的是它没有公开我需要的底层队列。因此,我尝试自己实现它,但遇到了障碍。有时,Cursor.nextObject返回null而实际上还有更多的文档。这是我附加到队列中的一小段代码片段,用于说明:if(this.cursor&&this.length()')+''+(err?err:''));if(item){this.push(ite

node.js - 如何使用 monk 使用 Node.js 启动 mongodb

我是mongodb和nodeJS的新手。目前我已经使用node.js、monk和mongodb制作了一个示例应用程序。然而,为了让它工作,我必须打开2个cmd窗口。第一个是转到mongodb文件夹,运行:mongod--dbpathmyprojectpath。第二个是转到myprojectpath,运行:npmstart。启动mongodb并手动指向工作路径似乎不是Web应用程序的正确方法。但是如何让mongoDB自动指向我的项目并运行,就像SQLserver一样? 最佳答案 有可能,但请记住,您提到的两个shell调用是不同的。第

node.js - Mongoose : Populate nested schemas

这是关于Mongoose嵌套填充方法。我尝试使用populate方法来填充文档,但仍然有问题。varuserSchema=Schema({email:{type:String,required:true,unique:true},fullName:String,meetings:[{type:Schema.Types.ObjectId,ref:'Meeting'}]});userSchema.statics.findById=function(id,callback){this.findOne({_id:id}).populate({path:'meetings',select:'_c

node.js - 如何安全地将 Passport 与 Node.js 和 MongoDB 一起使用?

所以我让Passport与Node.js和MongoDB一起用于session管理,这当然可以方便地提供对请求header中的user对象的访问。但是,至少对我而言,Passport将此对象设置为来自MongoDB的整个帐户文档。对于我创建的架构,这包括有关用户的所有信息-电子邮件、姓名、散列密码和加盐密码等。所以我对此有两个问题。首先,一遍又一遍地在服务器和客户端之间来回发送所有信息真的安全吗?当然,它是通过SSL发送的,密码经过哈希处理和加盐处理——但所有用户信息仍然存在。我的模式是否应该将用户信息(身份验证不需要的个人信息)保存在不同的MongoDB文档中?即使我这样做了,哈希密