Tag: mongodb query

asynchronous:使用Async.forEach组合两个mongodb集合

我是非常新的平均值堆栈,我正在尝试学习asynchronous。 我正在尝试使用asynchronous结合来自MongoDB的两个集合 并将这个迭代应用到一个集合上,为每个项目执行一个asynchronous任务 ,我试图学习这个简单任务的最简单有效的方法,这样很容易理解。 var OrderSchema = new mongoose.Schema({ menu_id: {type:mongoose.Schema.Types.ObjectId, ref: 'Foods'}, menu_name: {type:String,required:false}, customer_id: {type:String,required: true,}, customer_name:{type:String, required: false}, table_no:{type:String,required:true}, cooking:{type:Boolean, require:false, default:false}, ready:{type:Boolean,default:false}, served:{type:Boolean,default:false}, paid:{type:Boolean, default:false}, price: {type:Number, default:0}, quantity: {type:Number,default:0}, created_at: { type: Date, default: Date.now } } 付款模型 var mongoose = require('mongoose'); var PaymentSchema = new mongoose.Schema({ order_number: {type:String, required: […]

mongoose查询内部文件数组

我有这样的模式devise var userNotificationSchema = new Schema({ notification_id: { type: Schema.Types.ObjectId, ref: 'notifications' }, isRead: { type: Boolean } }); var userSchema = new Schema({ notification: [userNotificationSchema] }); 我想获取所有的通知数组列表,这是isRead: 'false' 。 为此我写了 Model.User.find({ _id: userid, 'notification.isRead': false }, function (err, result) { console.log(result); res.send(result); }); 但是这返回结果[] 。

带nodejs的Monodb – 计数结果后用组查询

当有会员去健身房的时候,我有以下这个代表滑动logging的集合。 { "_id" : ObjectId(""), "content" : { "Date_Key" : "", "TRANSACTION_EVENT_KEY" : "", "SITE_NAME" : "", "Swipe_DateTime" : "", "Gender" : "", "Post_Out_Code" : "", "Year_Of_Birth" : "", "Time_Key" : "", "MemberID_Hash" : "", "Member_Key_Hash" : "", "Swipes" : "" }, "collection" : "observations" } 我想在一个特定的月份里返回每次健身房挥杆次数的成员数量。 例如: { {"nrOfGymSwipes": 0, "nrOfMembers": 10}, // 10 […]

字段必须是BSONtypes的对象

我正在创build一个dynamic的filter对象来查询nodejs中的mongodb的数据。 然而,mongo抛出错误“无法parsingfilter对象,filter必须是BSONtypes的对象”。 这是我的参考function代码和日志的屏幕截图 。 function GetDeviceByFilter(args, cb) { var query = args.qs; var andQry = []; var orQry = []; var type = parseInt(query.type); try { if(type === uType.s){ andQry.push({sel: parseInt(query.idx)}); if(query.isSold === "0"){ orQry.push({uid: {$exists: false}}) orQry.push({uid: 0}); orQry.push({uid: null}); } else if(query.isSold === "1"){ orQry.push({uid : {$gt: 0}}); } } else if(type === […]

Mongo查询没有给出聚合函数的确切结果

我的mongo数据库包含一个“商店”集合,数据如下所示: { "_id" : ObjectId("XXXX1b83d2b227XXXX"), "ShopId" : 435, "products" : [ { "productId" : "1234", "productName" : "non veg", "productCategory" : "meals", "mrp" : "38", }, { "productId" : "5234", "productName" : "non veg", "productCategory" : "meals", "mrp" : "38", }, { "productId" : "6234", "productName" : "apple", "productCategory" : "juice", "mrp" : "38", }, […]

无法从Mongoose语句中推入数组

背景 : Market集合具有一个url属性,用于存储来自“ Site集合中选定sites的一系列url。 我创build了一个可以从/routes/markets.js调用的助手(代码如下),基本上根据req.params.urlselectMarket ,然后遍历market.sites数组并find相应的Site ,将它们存储到在渲染视图时可以使用的数组。 问题 :调用数组上的push函数实际上并没有推送任何东西,而在最后一个console.log语句中,我仅仅logging了[] 问 :我怎样才能推入这个数组? 这是for of循环, then Promise调用的问题? 市场helpers.js exports.listSites = (req, res, errorRender, successRender) => { let sites = []; Market.find({url: req.params.url}) .then((market) => { for (url of market[0].sites) Site.find({url}).then((site) => { sites.push(site[0]); }).catch((err) => console.log(err)); console.log(sites); res.render(successRender, {sites}); }) .catch((errors) => { res.render(errorRender, {errors}); }); }; […]

MongoError:无法将BSONtypes转换为date,而将嵌套文档中的logging分组

基本上我想按月分组投票。 我的模特: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var voteSchema = new Schema({ ip: String, votedOn: { type: Date, default: Date.now } }); var choiceSchema = new Schema({ text: String, votes: [voteSchema] }); var PollSchema = new Schema({ question: { type: String, required: true }, choices: [choiceSchema] }); module.exports = mongoose.model('Polls', PollSchema); 样本数据 […]

Object.keys,如何获取mongodb中的键列表

{ "_id": "1", "style": "13123", "category": "dress", "colors": { "Black": { "prestock": 50, "instock": 60, "inactive": 0 }, "Blue": { "prestock": 30, "instock": 0, "inactive": 0 }, "Red": { "prestock": 10, "instock": 60, "inactive": 0 } } } 我有上面的json,我需要访问prestock,instock和不活动。 但颜色的价值将根据风格而改变。 例如: { "_id": "2", "style": "14321", "category": "top", "colors": { "Green": { "prestock": 50, "instock": […]

mongoose – 双向参考

我是Mongoose和MongoDB的新手,但即使在网上search了几个小时,我也找不到答案。 想象一下聊天应该在哪里聊天,只有成对的人才能一起聊天。 为此我创build了类似于以下的模式: var schema = new mongoose.Schema({ chatWith: { type: mongoose.Schema.ObjectId, ref: 'User' } }); var User = mongoose.model('User', schema) 题: 如果我将user2设置为chatWith与user1的path,是否可以在另一侧自动设置? 类似的东西: var user1 = new User(); var user2 = new User(); user1.chatWith = user2; user2.chatWith === user1; // true 如果这是不可能的,那么实现这个目标最有效/最好的方法是什么?

无限滚动与Angularjs和mongoose – 性能

我有一个使用Mongoose和Expressjs从MongoDB使用$http.get() Angular获得的图像列表。 我做的很好,但对性能有疑问。 到目前为止,我find了两种方法来实现它: 使用skip 使用$nin 查询如下所示: // Using $nin: var skip = req.query.skip || []; User.find({ _id : { $nin: skip }}) .sort({ _id: -1 }) .limit(15) .exec(function(err, users) { if (err) res.json({ 'msg': 'Error loading users' }); res.json({ users: users }); }); 和: // Using skip User.find({}) .sort({ _id: -1 }) .skip(15) .limit(15) […]