草庐IT

mongoose

全部标签

node.js - 使用 Mongoose 测试异步中间件功能

我在Mongoose中使用save中间件来在采取某些操作时在数据库中创建事件日志。有点像UserSchema.post("save",function(doc){mongoose.model("Activity").create({activity:"Usercreated:"+doc._id});});这似乎工作正常,但问题是我无法测试它,因为无法将回调传递给post(这可能不会说得通)。我使用mocha对此进行了测试:User.create({name:"foo"},function(err,user){Activity.find().exec(function(err,act){

MongoDB 编辑数组中的对象(如果存在) - 否则推送一个新对象

对于集合“users”中的以下文档:{_id:ObjectId(1234),name:"JoeBloggs"events:[{date:1378335600,//timestamprepresentingthestartofdayvenues:[,,...]},{date:1378249200//thepreviousdayvenues:[]}]}问题:我想在给定日期将新的venue_id推送到venues数组。但是,如果不存在具有相应日期的事件对象,则会将新的事件对象推送到具有新日期的事件数组,并将地点推送到field数组。当前解决方案:尝试更新日期,如果失败,则我们知道需要创建新的

mongodb - 使用 $elemMatch 更新 mongodb 嵌入式文档

我有一个包含嵌入式文档数组的模型。varCourseSchema=mongoose.Schema({invitations:[InvitationSchema],total:Number});varInvitationSchema=newmongoose.Schema({token:{type:String,required:true},email:String});想通过匹配请求中嵌入的邀请数组的token来更新/增加邀请总数,这里我遵循了http://diogogmt.wordpress.com/2012/03/23/update-elementmatch-and-the-posi

mongodb - Mongoose 的mapreduce函数错误

我正在尝试执行MapReduce函数,但是,我不知道为什么,它会返回下一个错误:{[MongoError:exception:assertionsrc/mongo/db/commands/mr.cpp:424]name:'MongoError',errmsg:'exception:assertionsrc/mongo/db/commands/mr.cpp:424',code:0,ok:0}我的代码:O.query={userto:id,userfrom:{$exists:true}};//"id"isavarO.map=function(){emit(this.userfrom[0],

javascript - 如何使用 select :false 为字段创建虚拟属性

我正在使用select:false来防止显示大量嵌套数据。varRevision={Timestamp:{type:Date,default:Date.now},};varArticle=newSchema({Title:{type:String,required:true},Revisions:{type:[Revision],select:false}},schemaOptions);我想用一个虚拟属性来显示它的小部分。Article.virtual('LastRevision').get(function(){varrevs=this.Revisions;//undefinedu

node.js - 是否可以在 Mongoose 中使用 native mongodb 命令

这个问题在这里已经有了答案:Howtodorawmongodboperationsinmongoose?(6个答案)关闭8年前。我目前正在开发一个使用mongodb作为数据库的项目,它在服务器上有node.js并且正在使用mongoose包,我想知道是否可以在mongoose中使用nativemongodb命令。

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

json - Mongoose 返回空对象,在 mongo shell 中工作

我正在尝试使用mongoose(最新版本)从我的mongoDB获取返回的JSON对象。一切正常,但我得到一个返回的空数组[]。app.js/*///////////////////////////////////////////////////////////////////////////////////////////////////////////dependencies//////////////////////////////////////////////////////////////////////////////////////////////////////////