草庐IT

mongoose-dbref

全部标签

node.js - $unset 在 Mongoose 中不起作用

我的架构如下:-varSchema1=newmongoose.Schema({name:String,description:String,version:[{id:String,status:Number}]});我想取消设置版本字段。我尝试以下代码:-Schema1.update({},{$unset:{version:1}},{multi:true}).exec(function(err,count){console.log(err,count)});它给了我以下输出:-null10但输出包含版本字段:-{name:'a',description:'sdmhf',version:

javascript - 在 Express.js 应用程序中自动共享 Mongoose 连接

我正在使用Express.js和Mongodb(以及用于使用模式访问数据库的Mongoose模块)开发RESTfulAPI。我一直在寻找在整个Express应用程序中共享与Mongo数据库的连接的最佳方式,以免每个请求都有一个新的连接(网络和Stackoverflow上的其他答案建议这样做)。我已经阅读了不同的解决方案,并决定尝试使用这种架构:在server.js(主应用程序文件)中我有这样的东西:varexpress=require("express");varbodyParser=require("body-parser");varlogger=require("morgan");

node.js - 使用 KeystoneJs 的 Mongoose 二级人口

这个问题在这里已经有了答案:Populatenestedarrayinmongoose(16个答案)关闭7年前。我需要用Mongoose/Keystone向下填充两层,但遇到了障碍。我有3个模型:地区、国家和城市。地区包含国家,国家包含城市。我的模型:模型区域:varRegion=newkeystone.List('Region');Region.add({name:{type:Types.Text},countries:{type:Types.Relationship,ref:'Country',many:true}});模范国家varCountry=newkeystone.List

node.js - 仅在 mongoose 中的填充数组中删除文档 objectid

我在尝试使用填充查询从数组中删除objectid时遇到了非常困难的事情。这是我的架构varuserSchema=newSchema({username:String,password:String,books:[{type:Schema.Types.ObjectId,ref:'Book'}]});varbookSchema=newSchema({bookid:{type:String,unique:true,required:true},imgURL:String,fortrade:Boolean});问题出在下面显示的查询中。当我只希望它删除books数组中的objectid时,它会

mongodb - Mongoose 在数组中查找元素

我刚开始使用Mongoose,在查找元素时遇到问题...我的架构包含一组子区域,我想通过它的code从中找到匹配的子区域。架构如下:varschema={name:{type:String,required:true}...subRegions:[{name:{type:String,required:true},code:{type:String,required:true}}]...};我想到了find({subRegions:{"$in":[{code:regionCode}]}}).exec(...)但这行不通... 最佳答案

node.js - MongoDB、Mongoose 从一个 Find 中搜索另一个集合的结果

我知道这违背了MongoDB及其No-SQL模型的设计,但我正在尝试在一个集合中查找文档,然后使用结果中的ID字段在另一个集合中查找相应的记录。有效地尝试模拟连接。//queryisirrelevanttoquestionvarresults=collectionOne.find(query).limit(limit);vara=[];results.forEach(function(r){varaquery={id:{$eq:r.id}};collectionTwo.find(aquery).limit(limit).exec(function,b){if(err){res.rend

node.js - 带有 NodeJS 的 Mongoose : Default value for document's Date only updates on server restart

我有一个像这样声明的Mongoose模式:varPostSchema=newmongoose.Schema({timestamp:{type:Number,default:Date.now()},});我定义了一条路线来创建非常有效的帖子。我用来创建帖子的代码如下:/*POSTCreatenewpost(authrequired)*/router.post('/',auth,function(req,res,next){varpost=newPost();post.save(function(err,post){if(err){returnnext(err);}res.json(pos

mongodb - Mongoose 填充选项限制,如何限制子文件的数量?

我有一个查找帐户并填充该帐户的子文档的查询。当我使用populatepath:"orders"时,限制选项将起作用。但是如果我使用填充路径“orders.order”,选项限制将不起作用。我该怎么办?我的模式是这样的:varAccountSchema=newmongoose.Schema({_id:id,orders:{type:[{order:{type:mongoose.Schema.Types.ObjectId,ref:'Order'}}]}});varfindOrderByUserId=function(accountId,index,count,callback){varli

node.js - 多个字段上的 Mongoose 过滤(搜索)

这个问题在这里已经有了答案:Mongooseoptionalsearchqueryparameters?(3个答案)关闭5年前。我正在尝试对多个字段进行基本筛选(搜索),想请教如何实现:Location.find({$and:[{name:{$regex:query.name}},{city:query.city},{type:query.type}]});我一开始就有这个,当然,这会过滤所有字段,$or是不够的。我的数据是这样的:{"name":"Shop1","type":"shop","city":"City1"},{"name":"Shop2","type":"shop","c

javascript - 带有 ArrayFilters 的 Node.js Mongoose .update

就目前而言,我能够使用Mongoshell实现此功能,但在使用Mongoose的Node.js内部嵌套数组时遇到问题。成功的Mongoshell命令:db.test.update({},{$set:{"this.$[i].that.$[x].amnt":10000}},{arrayFilters:[{"i._id":ObjectId('5a568059bc44142a9ca33d09')},{"x.userId":ObjectId('5a466acb864c752f8c9890c6')}]})结果:将amnt字段更改为10000。在对从数据库中提取的给定字符串调用ObjectId(''