Tag: mongodb

如何从无服务器框架中的aws lambda调用mongodb函数?

我一直在观看像这样的无服务器框架上的video教程,并根据我收集的信息,似乎使用框架是pipe理aws lambda函数的最有效的方法之一。 在上面的video链接中,给出了一个使用lambda函数连接到DynamoDB表的示例,然后将其保存。 我需要做的是连接到一个MongoDB表,然后从中获取数据。 我只find了在无服务器上使用DynamoDB但在MongoDB中没有的例子。 我认为这个过程应该是相似的,但似乎并非如此。 我发现这个教程,但它不使用无服务器框架。 下面是在无服务器框架中从lambda连接并保存到Dynamo数据库表的示例: const uuidV1 = require('uuid/v1'); const AWS = require('aws-sdk'); const promisify = require('es6-promisify'); const _ = require('lodash'); const dynamo = new AWS.DynamoDB.DocumentClient(); module.exports.saveUserToDatabase = function(userId, coffeeType, coffeeSize) { console.log('saveUserToDatabase'); const item = {}; item.drink = coffeeType; item.size = coffeeSize; item.userId = userId; return saveItemToTable('coffee-user-table', item); }; 以下片段是用于使用名为lambda-local的npm包连接到MongoDB Atlas数据库的代码: […]

通过使用body parser,node js的POST方法将一个variables从HTML表单传递到mongodb查询中

我从html表单发送数据,以在mongodb查找查询中使用它,但是当在查询中使用它时,它将searchvariables名称而不是其中的值存储。 app.post('/love',function(req, res){ var article = new Article(); article.headers.Subject = req.body.title; var x = "article.headers.Subject"; console.log(x); var query = Article.find({'header.Subject': {$regex: 'x'}}).limit(2); query.exec(function(err, articles){ if(err){ console.log(err); }else{ res.render('index.html',{ title: 'author', articles:articles }); } }); return; }) 尝试所有的查询选项,如: .find('headers.Subject' : /x/i) .find('headers.Subject': 'x') 我已经打印x和它的价值,但是当它发现查询它只是寻找字母“x”。 模型结构: var ArticleSchema = mongoose.Schema({ body: 'String', subFolder: 'String', headers:{ Subject: 'String', […]

阻止用户json查询mongodb

我在我的三个不同的用户集合中有三个职位我想在我的视图会议(Html,Css)部分取得职位但我需要过滤另外两个职位从另外两个用户发布,因为我有一些块function在我的查看部分。 所以所有的post都是允许的,但是我阻止了她/他的post对我和我来说都是不可见的。 BlockedByUser :(这是我的Post Json数据) { "_id" : ObjectId("591729b52bb30a19afc9b89d"), "createdTime" : ISODate("2017-05-13T15:43:49.381Z"), "isDeleted" : false, "Message" : "Message Two", "postedBy" : ObjectId("598adbefb3bf0b85f92edc3b"), "recipient" : [ ObjectId("598ae453b3bf0b85f92ee331"), ObjectId("5910691ae2bcdeab80e875f0") ], "updatedTime" : ISODate("2017-05-20T09:24:39.124Z") } 下面两个用户发表数据,我已经阻止和在他的收件人数组密钥存储我的ID收件人[598adbefb3bf0b85f92edc3b] 阻止用户一: { "_id" : ObjectId("591729b52bb30a19afc9b89d"), "createdTime" : ISODate("2017-05-13T15:43:49.381Z"), "isDeleted" : false, "Message" : "Message One", "postedBy" : ObjectId("598ae453b3bf0b85f92ee331"), "recipient" : [ ObjectId("598adbefb3bf0b85f92edc3b"), […]

MongoDB-Express :: ENOTDIR:不是目录,… gssapi.js / package.json

我在express-js项目中使用了mongodb 。 我想在vs code运行服务器,但它与npm包抛出错误。 它适用于Webstorm和command-line 。 Error: ENOTDIR: not a directory, stat '/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/auth/gssapi.js/package.json' at Error (native) at fs.existsSync (fs.js:219:13) at find_package_json ('/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/require_optional/index.js:13:9) at require_optional ('/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/node_modules/require_optional/index.js:37:18) at Object.<anonymous> ('/home/user/Workspace/Project1/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/auth/gssapi.js:27:14) at Module._compile (module.js:410:26) at Object.Module._extensions..js (module.js:417:10) at Module.load (module.js:344:32) at Function.Module._load (module.js:301:12) at Module.require (module.js:354:17) 我已经尝试多次安装软件包,并更新npm本身,但无法修复它。 有人可以请build议如何解决这个问题? 谢谢。 这是我的package.json文件。 { "name": "Project 1", "version": "1.0.0", "description": "Project […]

用于Nightwatch.js的MongoDB数据库清理程序

有没有办法在Nightwatch e2etesting之间擦除mongo数据库? 我来自Ruby,在那里你可以configurationRSpec使用一个名为数据库清理包,并在每次testing后擦拭你的数据库,我想知道是否有一个类似的设置存在于JavaScript的生态系统。 我做了一些研究,发现了一个名为node-database-cleaner的看起来很有前途的包,但是目前它正在抛出一个错误。 码: require('mongodb'); const DatabaseCleaner = require('database-cleaner'); const databaseCleaner = new DatabaseCleaner('mongodb'); …test assertions databaseCleaner.clean('mongodb://localhost:27017/my-db') 错误: TypeError: db.collections is not a function 我不一定会使用node-database-cleaner,无论使用什么库,我都会对任何解决scheme感兴趣。

如何检索Mongoose中的子文档

我的数据库中有mongo集合: [ { "_id": "59955bb0cd522a00bcaab08c", "lang": "en", "__v": 0, "message_subsets": [ { "identifier": "errors", "_id": "59955bb0cd522a00bcaab08d", "messages": [ { "identifier": "invalid", "message_text": "$FIELD$ is invalid", "_id": "59955bb0cd522a00bcaab091" }, { "identifier": "empty", "message_text": "$FIELD$ is required", "_id": "59955bb0cd522a00bcaab090" } ] } ] }, { "_id": "59955bb0cd522a00bcaab08c", "lang": "ru", … ] 这是由这种mongoose模式构build的: const MessageSchema = new mongoose.Schema({ […]

Mongoose从嵌套数组中移除整个对象

我正在使用mongoose4.11.3。 我试图从嵌套数组中删除一个对象。 这是我的模式 var VendorSchema = new Schema({ _id: { type: Schema.Types.ObjectId, ref: "User" }, services: [{ _id:false, service_category: { type: Schema.Types.ObjectId, ref: "ServiceCategory" }, sub_services :[{ _id:false, service : { type: Schema.Types.ObjectId, ref: "Service" }, service_description:{ type: String, default: null } }] }] }); 我需要删除sub_services数组中的对象。 所以这就是我所做的 Vendor.update({'services.service_category': req.body.category_id}, {$pull :{'services.$.sub_services': { "service": req.body.service_id }}},function(err,obj){ […]

keystone.Storage适配器谷歌云存储

是否有一个谷歌云存储适配器keystone.Storage库? 我想承载一切我可以与一个服务提供商。 我将使用谷歌云平台来托pipe我的Keystone.js应用程序和MongoDB数据库。 该库有本地文件,S3和Azure适配器,但我不知道如何使用它与谷歌云存储。 请参阅https://github.com/keystonejs/keystone/tree/master/lib/storage 如果可以像keystone-storage-adapter-s3一样使用,我会很棒: configuration: var storage = new keystone.Storage({ adapter: require('keystone-storage-adapter-gcloud'), s3: { key: 'gcloud-key', secret: 'secret', bucket: 'mybucket', path: '/profilepics', headers: {}, }, schema: { bucket: true, etag: true, path: true, url: true, }, }); 然后用它作为File域的存储提供者: File.add({ name: { type: String }, file: { type: Types.File, storage: storage }, });

当没有指定sorting顺序时,MongoDB如何sortinglogging?

当我们运行一个没有指定sorting顺序的Mongo find()查询时,数据库在内部使用什么来sorting结果? 根据mongo网站上的文档 : 在不带参数的情况下执行find()时,数据库以自然顺序返回对象。 对于标准表而言,自然顺序并不是特别有用,因为虽然顺序经常接近插入顺序,但不能保证顺序。 但是,对于Capped Collections,自然顺序保证是插入顺序。 这可能是非常有用的。 但对于标准集合(非上限集合),使用哪个字段对结果进行sorting? 是_id字段还是别的吗? 编辑: 基本上,我想我想得到的是,如果我执行以下search查询: db.collection.find({"x":y}).skip(10000).limit(1000); 在两个不同的时间点: t1和t2 ,我会得到不同的结果集: 当t1和t2之间没有额外的写入? 当t1和t2之间有新的写入? 在t1和t2之间是否添加了新的索引? 我已经在临时数据库上运行了一些testing,并且我得到的结果对于所有这三种情况都是一样的( 是的 ) – 但是我想确定,而且我确定我的testing用例不是很彻底。

我想在Node.js中更新表单数据,但是每当我运行这个代码,它将所有的值设置为null

app.put('/edit/:id', function(req, res) { //new actor data var actor = { 'name': req.body.name, 'dob': req.body.dob, 'photo': req.file, 'bio' : req.body.bio }; //updating actor Actor.findOneAndUpdate({ _id:req.params.id }, { $set: actor }, { new: true }, function(err, data) { if (err) { res.send({ status: false, error: err }); } else { res.send({ status: true, data: data }); […]