Tag: mongoose

服务器上的正确variables通过socket.io作为不正确的variables传递给客户端

我试图通过socket.io从服务器传递给客户端的variables。 我将数据保存到MongoDB并使用Mongoose。 目标是将客户端的一些数据保存到数据库中,然后将刚刚保存的文档的_id传递回客户端。 以下是我到目前为止: 服务器 client.on('savesnail', function (data) { console.log('save snail: ' + data.name); var snail = new Snail(data); snail.save(function (err, snail) { if (err) {console.log('err: ' + err)} // TODO handle the error var snailID = snail._id; console.log('saved snail ID ' + snailID); client.emit('setSnailID', snailID); var conditions = {_id: data.ownerID}, update = {$set: {newUser: […]

当使用一串键作为select器进行筛选时,mongoosejs查询失败

我试图从一个mongodb查询文档,并让系统从匹配查询的文档中只返回几个字段。 我第一次尝试下面列出的第一个查询的语法,它没有回来,即从来没有调用callback。 然后,我用另一种语法进行了一些尝试,并从下面列出的第二个查询中获得了结果。 我想了解为什么第一个查询不起作用 – 我误解了语法? 这是mongoose3.6.8和mongo 2.4 TIA 第一个查询 query.find({ category:{ $in: categoryArray } ,expiration:{$gte: new Date()} ,place:queryVal.destination } ,'_id expiration url' ,function (err, docs) { if (err) { console.log(err); } else { console.log('queryJoin returned ' + docs.length + 'entries'); } } ); 第二个查询 query.find({ category:{$in: categoryArray} ,expiration:{$gte: new Date()} ,place:queryVal.destination }) .select({_id:1, expiration:1, […]

Mongoose Populate Child ref返回null数组

正在检查Mongoose和相对较新的填充方法。 从孩子向父母填充时似乎工作完美,如下所示: var Comment = new Schema({ Message: { type: String } User: { type: ObjectId, ref: 'User' } }); var User = new Schema({ Username: { type: String } Comments: [{ type: ObjectId, ref: 'Comment' }] }); 以下按预期工作。 Comment.find({}).populate({ path: 'User' }).exec(function (err, comments) { if(err) handle(callback); // no error do something with comments/user. […]

mongoosefindOneAndUpdate与ID数组callback

我在forEach循环中使用findOneAndUpdate来创build/更新多个条目。 我希望它返回一个数组,它已经创build或更新的所有对象ID。 在循环过程中,我可以看到它将数据添加到数组,但是一个离开循环,数组是空的。 该数组不应该填充? 这是我的代码。 var softwareArray = ["Software1","Software2","Software3"], updatedArray = []; softwareArray.forEach(function(software){ Software.findOneAndUpdate( { Name: software }, { Name: software }, {upsert:true}, function(err, rows){ updatedArray.push(rows._id); console.log(updatedArray); //This has data in it…. } ); }); console.log(updatedArray); //This has no data in it… 编辑:更新我的工作变化为蒂亚戈 var softwareArray = ["Software1","Software2","Software3"], updatedArray = []; loopSoftware(softwareArray, function(updatedArray){ console.log(updatedArray); //carry on…. […]

相当于Node.js中的mongo shell db.collection.runCommand()

我想在MongoDB 2.4中使用全文search。 文本search可通过runCommand函数获得,例如db.collection.runCommand( "text", { search: "keywords"}) 。 所以,我想知道在mongojs或者node-mongodb-native模块中是否有相当于runCommand()函数。 我知道这个问题以前曾经触及过,但从来没有得到足够的回答。 提前致谢。

存储用户的个人资料详情

我期待存储在我的应用程序的用户的configuration文件的详细信息,如他们的出生date,国家,名字,姓氏,他们join的date,他们的profile_pic的位置等。我在Expressjs应用程序中使用mongoose。 我也将存储用户名和散列的密码,如果他们已经从他们的电子邮件地址激活。 我有几个问题,我感到困惑,不知道该怎么办? 我应该存储所有的用户在一个mongoose模型,并有一个激活的列,如果用户已经从它的电子邮件链接激活或者我应该有两个不同的表,并且一旦用户已经激活,我把他从非激活表移动到激活表。 第二件事是想知道我应该存储configuration文件的细节作为列在相同的模型或创build另一个模型的configuration文件的细节使用人口。 我在想,因为这些细节有什么我需要查询。 他们基本上只是读写而已。 我不查询使用这些参数。 所以我想,让他们在不同的模式会稍微好一些,因为我会一直只查询用户名或密码。 我认为可能的另一个select是在子文档中使用它们。 我也将存储我的应用程序的用户喜好,我有上面相同的概率。 请帮我select什么样的select。 我已经做了很多的阅读,但不知道截至目前。 请帮助我标准的事情做什么,什么会更好 谢谢

在nodejs中,asynchronousrecursion意味着什么

在Mongoose的validation文档中,他们说“ validation是asynchronousrecursion的:当你调用Model#save时,子文档validation被执行。如果发生错误,你的Model#保存callback会收到它 ” 这是什么意思? 假设我有5个validation,比他们将并行或系列运行? 或者,他们是通过模型保存方法接收的callback串联调用的? 请帮我理解这个? 我知道这是一个非常简单的问题,但我无法从search和所有的帮助。 所以,请。

如何将返回值推入数组mongodb?

我得到正确的数据为friendRequests获取用户ID并将其引入我的mongoose文件的friendRequest字段中。 当我添加$ push将数据添加到路由文件中的friendRequest数组中时,它实际上不会插入它,并将我创build的err函数返回给我。 这是我的路线文件: exports.addContactPost = function(req, res, err) { User.findByIdAndUpdate(req.signedCookies.userid, { $push: {friendRequest: req.body.friendRequest} }, function(err) { if(err) { console.log("post2"); return console.log('error'); } else { console.log('postsuccess'); res.json({response: true}); } }); }; 这里是mongoose文件: var mongoose = require('mongoose'), Schema = mongoose.Schema, bcrypt = require('bcrypt-nodejs'), SALT_WORK_FACTOR = 10; var UserSchema = new Schema({ email: { type: String, […]

Mongoosejs设置/保存与更新validation

我创build了一些schema.pre('save', function(){…}); validation,但后来学到更新没有触发它。 我真的想更新validation,所以我开始这样做: MySchema.findOne({…}, function(doc) { doc.set(req.body); doc.save(function(){…}); }); 这样做有什么不好吗? 这似乎是合乎逻辑的,但我还没有看到这样做更新多次,因为我已经看到他们用doc.update({}); 或者MySchema.findXxxAndUpdate({},{}) 。 我意识到update只是通过一切通过本地驱动程序,所以设置/保存会招致一些性能处罚? primefaces性如何?

mongoose保存embedded的文件

我有以下架构: var StorySchema = new Schema({ title: { type: String, required: true }, users: { id: { type: Schema.ObjectId, ref: 'Users' }, creator: { type: Boolean } }, maxlines: { type: Number, default: '10'}, lines: { text: { type: String }, entered_at: { type: Date }, user: { id: { type: Schema.ObjectId, ref: 'Users' } […]