草庐IT

mongoose-dbref

全部标签

node.js - 在 Mongoose 中使用 String 进行引用

我有两个模型varPassenger=mongoose.model('passengers',newSchema({username:{type:String,ref:'users'},company:String,baggage:String,note:String,owner:String}));varUser=mongoose.model('users',newSchema({username:String,first:String,last:String,email:String,password:String}));我真的很想得到一个完整的用户而不是一个有用户名的乘客。我认为

node.js - Mongoose:将 addToSet 与 ObjectIds 一起使用会导致孤立 ID

我在使用mongoDB的$addToSet到一个充满ObjectId的数组时遇到了一个相当有趣的问题。在我的mongoose模式(“Happening”)中,我声明了一个名为“expected”的ObjecId数组,供.populate()使用。expected:[{type:Schema.Types.ObjectId,ref:"User"}]...在我使用它的任何地方都能很好地工作。到目前为止一切顺利。然后我尝试使用$addToSet更新Happening.expected数组,如下所示:http://docs.mongodb.org/manual/reference/operato

node.js - 更新 Mongoose 中的嵌套数组

我有一个类似于以下结构的文档,我想使用mongoosejs更新property3。我试过:mongoose.model('someObject').update({"_id":"52817b7be2d14af309000005","array1._id":"52817b7be2d14af309000006","array2._id":"52817b7be2d14af309000007"},{"$set":{"array2.$.property3":false}})但是好像不行。有没有官方的方法来做到这一点?此外,是否有一种干净的方法可以使用没有自定义路由的expressjs动态嵌套它?

node.js - Mongoose 按子值排序

我有一个父子架构,如下所示:schedule=Schema({from:Date,to:Date});content=Schema({schedule:{type:Schema.ObjectId,ref:"schedule"}name:String});我的问题是,如何查询Mongoose以返回“所有内容,按schedule.fromdate排序”? 最佳答案 您需要在客户端分两步进行排序,或者将要排序的日期字段存储为content对象中的嵌入字段。您正在尝试使用来自两个集合的数据进行集合连接。由于MongoDB不支持联接,因此您需

mongodb - Mongoose 使用 key 文件进行身份验证

我有一个包含3个成员的mongo副本集,他们正在使用keyFile授权。我正在使用Mongoose,但从他们的文档中找不到通过keyFile进行身份验证的方法。Mongoose支持吗?如果是这样,我如何在验证时指定一个keyFile? 最佳答案 您不通过key文件验证您的客户端。您可以设置SSL并使用x509进行身份验证。但是,keyFile用于复制集成员之间的身份验证。对于身份验证,您必须创建一个用户并要求在您的mongodb配置中进行身份验证。用户在创建它的数据库中是本地的。x509需要一些额外的步骤来将key/证书关联到给定用

javascript - Mongoose 更新不起作用

我检查了很多关于stackoverflow的问题并修改了这个不起作用的简单查询,我不知道为什么......router.get('/users/:username/suspend',function(req,res){varusername=req.params.username;User.findByUsername(username,function(err,user){console.log(user);user.suspended=true;user.save(function(err,u){res.redirect('ok');});});});我尝试了很多方法,比如将mod

java - 如何使用 spring mongoTemplate 使用 DbRef 更新 MongoDB 文档

@DocumentclassEntity1{@IdStringid@DbRef(lazy=true)Entity2entity2;Stringtest;}mongoTemplate.upsert(newQuery(Criteria.where("entity2.$id").is(entity2Id),newUpdate().set("test","newValue"),Entity1.class);我得到了Found$idfieldwithouta$refbeforeit,whichisinvalid我的问题是:如何使用DbRef执行此更新插入。 最佳答案

使用 DBRef 的 MongoDB 聚合

是否可以聚合通过DBRef存储的数据?蒙戈2.6假设我有如下交易数据:{_id:ObjectId(...),user:DBRef("user",ObjectId(...)),product:DBRef("product",ObjectId(...)),source:DBRef("website",ObjectId(...)),quantity:3,price:40.95,total_price:122.85,sold_at:ISODate("2015-07-08T09:09:40.262-0700")}诀窍是“source”在本质上是多态的——它可以是不同的$ref值,例如“webpa

javascript - Mongoose 将请求对象传递给中间件

我正在为mongoose编写一个中间件,它使用prequery钩子(Hook)为每个查找对象执行。postSchema.pre('query',function(query,next){//Iwanttoaccessthereq.userobjectherequery.populate('Category');next();});我想为对api服务器发出的每个请求访问pre中的req.user对象。如何将对象传递给中间件?有可能吗?https://github.com/Automattic/mongoose/issues/1931我找到了上面的内容,但它没有谈论传递req对象。====

node.js - Mongoose :子文档 CastError:转换为数组失败

我有两个模式:架构一(父级):varslide=require('../model/slide');varslidesetSchema=newSchema({name:String,dataID:Schema.Types.ObjectId,slides:[slide]});和子模式:varslideSchema=newSchema();//usethismethodforarecursivedefiniton//srchttps://groups.google.com/forum/#!topic/mongoose-orm/0yUVXNyprx8slideSchema.add({no:N