Tag: mongodb query

如何调用来自MongoDB的函数

这是我的robomongo文件 { "_id" : ObjectId("##########"), "actionname" : "testaction", "actiontype" : "database.action", "isshortworkflow" : true, "processstartedmessage" : "", "databaseUserName" : "####", "databasePassword" : "", "queryTemplate" : "Select * from shop where name=parameters.get("itemName")", "databaseType" : "MYSQL", "resultTemplate" : " parameters.get("itemName") + 'has quantity of' + result[0].get('quantity')" } 这里的queryTemplate字段是有name = parameres.get(“itemName”)。这是我的java代码中的一个本地函数,它将返回为“item1”。 问题是,因为它将来自mongo db,所以不会执行paramerters.get(“itemName”)函数。 有没有办法使用从mongodb返回的string执行该函数。如何在mongodb内部实现?

Mongo根据计算的条件进行sorting

我有一个Mongo集合的消息,看起来像这样: { 'recipients': [], 'unRead': [], 'content': 'Text' } 收件人是用户ID的数组,而unRead是尚未打开邮件的所有用户的数组。 这是按预期工作的,但我需要查询所有消息的列表,以便返回前20个结果,首先优先处理未读的消息,如下所示: db.messages.find({recipients: {$elemMatch: userID} }) .sort({unRead: {$elemMatch: userID}}) .limit(20) 但是这不起作用。 根据是否符合某个标准,对结果进行优先sorting的最佳方法是什么?

如何用MongoDBbuild立“喜欢”投票系统

目前我正在开发一个移动应用程序。 基本上人们可以张贴他们的照片和追随者可以像Instagram的照片。 我使用mongodb作为数据库。 像Instagram一样,可能会有很多喜欢单张照片。 所以使用一个索引单个“像”的文件似乎是不合理的,因为它会浪费大量的内存。 不过,我想要一个用户快速添加一个。 所以我的问题是如何build模“喜欢”? 基本上数据模型是非常类似于instagram,但使用Mongodb。

MongoDB:从另一台服务器复制数据后,不查询

我有一个生产服务器,我们有一个nodejs应用程序和一个MongoDB数据库。 我们在服务器上有一个虚拟机,应用程序和数据库位于那里。 现在,我们要在另一台服务器上构build一个开发环境。 因此,我们已经将虚拟机复制到另一台服务器。 但现在,当我们的应用程序查询MongoDB时,它不会得到任何数据。 但是,它连接到数据库,MongoDB的日志和日志forms的应用程序显示给我们。 而且,当我们在整个mongo shell中查询数据库的时候,我们得到的数据。 应用程序使用mongoose连接到数据库。 因此,我们试图复制生产服务器的数据为: 在生产服务器上执行mongoexport,然后在其他机器上执行mongoimport,但是什么也没有。 在生产服务器上执行一个mongodump,然后在其他机器上执行一个mongorestore,但是什么都没有。 服务器的特点如下: 两个服务器的操作系统:Ubuntu 16.04 MongoDB版本:3.2.11 然后,因为我无法获得数据,我试图将其复制到我的本地主机。 但是这不是问题,这只是附加信息: 我的电脑操作系统:Ubuntu 14.04(32位) MongoDB版本:3.2.4

将ISOdate转换为yyyy-mm-dd格式

鉴于收集(#name:用户)结构: { "_id" : ObjectId("57653dcc533304a40ac504fc"), "username" : "XYZ", "followers" : [ { "count" : 31, "ts" : ISODate("2016-06-17T18:30:00.996Z") }, { "count" : 31, "ts" : ISODate("2016-06-18T18:30:00.288Z") } ] } 我想根据用户名字段来查询这个集合,ts以'yyyy-mm-dd'格式返回。 预期产出: { "_id" : ObjectId("57653dcc533304a40ac504fc"), "username" : "XYZ", "followers" : [ { "count" : 31, "date" : "2016-06-17" }, { "count" : 31, "date" : […]

NodeJS&MongoDB – 基于ID数组获取对象

我遇到麻烦返回基于ObjectIds数组获取对象。 我收集了10个项目。 例如,在iOS应用程序中,我传递了一个用户已经保存为collections夹的ObjectIds数组,以返回collections夹选项卡中的这两个对象, ["59f85eae4545XXX9b94d53d3", "59f85eae45454XXXb94d76a1"] 现在,我刚刚使用NodeJS对请求顶部的ObjectId进行了硬编码,直到我请求工作,下面是请求 – exports.list_favs = function(req, res) { Articles.find({ _id: { $in: [ mongoose.Types.ObjectId('59f85aXXXXf1769b94d53ce'), mongoose.Types.ObjectId('59f85eaeXXXX1769b94d53d3') ]} }, function(err, articles) { if (err) res.send(err); res.json({ data: { articles } }); }); }; 而我甚至试过这个 – exports.list_favs = function(req, res) { var ids = new Array( new ObjectId("59f85eaeXXXX1769b94d53d3"), new ObjectId("59f85aXXXXf1769b94d53ce") ); Articles.find({ _id: { […]

使用mongoose更新深度嵌套的子文档

我试图阅读大部分类似的问题(而且有很多),但找不到任何我能理解的解决scheme。 如下所述的文件结构 – [ {RoomID:Room1, Boards:[ {BoardID:Board1, Devices:[ {DeviceID:Dev1} ….] } ….] } …..] 查询RoomID和BoardID后如何添加新设备?

通过Mongoose的值仅查找数组中的一个项目

这里是我的模式与一些数据的一个例子: client { menus: [{ sections: [{ items: [{ slug: 'some-thing' }] }] }] } 我正在尝试像这样select它: Schema.findOne({ client._id: id, 'menus.sections.items.slug': 'some-thing' }).select('menus.sections.items.$').exec(function(error, docs){ console.log(docs.menus[0].sections[0].items[0].slug); }); 当然,“docs.menus [0] .sections [0] .items [0] .slug”只适用于每个数组中只有一个东西。 如果每个数组中有多个项目,而不必遍历所有内容以find它,我怎么能做到这一点? 如果你需要更多的细节让我知道。

如何使用nodejs中的variables创build一个mongodb查询对象

该查询在mongo控制台中工作:db.blogs.find({title:/ fun / i}); 但我试图在nodejs中使用它,如果我这样做,它将无法正常工作: var keyword = "fun"; query = { "title" : "/"+keyword+"/i" }; //doesn't work query = { "title" : /fun/i }; //works, but I need to use the variable name – keyword

如何使用dot(。)通过Mongoose在Node.js中查询以及如何添加一个空数组

我有以下架构: var userSchema = new Schema({ userID: Number, userName: String, userEmail: String, teams:Array, socialMedias: { fbUID: String, googleUID: String, twitter: String } }); 首先,我如何添加一个空数组? 这是我正在做的以下方式吗? teams:{}, 其次,我正在尝试在我的Node.js中使用Mongoose进行查询,但在点('。')中出现错误: 这是我正在保存的文件: var user = new users({ userID: id, //give the id of the next user in Dbase userName: userName, userEmail: 'userEmail', teams:{}, socialMedias: [{socialMediaType: socialMediaID}] }); 其中userName,socialMediaType和socialMediaID是函数的参数。 所以,我添加这个文档后,我试图做下面的查询: […]