Articles of mongodb

重构反应项目,使其从数据库中加载数据

我有以下的项目结构: public src package.json server.js 在src文件夹里面我有以下内容: components data routes styles views App.js index.js 在组件文件夹中我有所有组件,如AsidePost , Filter , MainNav等。 在视图文件夹中,我有包含组件文件夹中的其他组件的组件 。 在数据文件夹中,我有我的组件的所有数据。 在路由文件夹中,我有Routes.js组件,它导入所有视图,并将视图显示到一个特定的路由: const Routes = () => { return ( <div> <MainNav /> <div className="page-content"> <Switch> <Route path="/home" component={Home} /> …and so on… <Route path="/blog" component={Blog} /> <Route component={PageNotFound} /> </Switch> </div> </div> ) } […]

尝试在findOneAndUpdate upsert后捕获_id

我第一次使用“upsert”使用findOneAndUpdate。 我正在replace最初的一些难看的代码。 我真的很喜欢重构是多么干净,但我的一个要求是如果创build一个新的logging,我需要捕获_id用于紧接着的另一个进程中。 问题是,如果一个logging不存在,它做了一个“upsert”返回为空。 我试过returnNewDocument:真假,但没有运气。 这里是我的代码结构: Model.findOneAndUpdate( { "user_email" : req.body.userEmail}, { $set: { "property_1" : req.body.prop1, "property_2": req.body.prop2 } }, { upsert: true, returnNewDocument: true }, function(err, data){ if(err) console.log('Error in find one and update'); console.log('Show data result: ', data); }) 我认为改变returnNewDocument为“假”会做的伎俩,因为它应该返回原始文件,但是这是行不通的。 有任何想法吗? 谢谢,所有!

MongoDB的Node.js驱动程序:callback不插入时处理exception

w3school提供了一个将对象插入数据库的简单示例,但是在这个例子中,callback似乎没有捕捉到一些exception,我不明白为什么。 在这个修改的例子中, var MongoClient = require('mongodb').MongoClient; var url = "mongodb://localhost:27017/mydb"; MongoClient.connect(url, function(err, db) { if (err) throw err; // var myobj = { name: "Company Inc", address: "Highway 37" }; var myobj; // undefined db.collection("customers").insertOne(myobj, function(err, res) { if (err) console.log('Error: We should see this'); console.log("1 document inserted"); db.close(); }); }); 我试图插入一个未定义的对象到一个集合,并希望通过打印出来的文本('错误:我们应该看到这个')callback来处理exception。 相反,下面的exception被抛出,程序终止(就像整个connect期望被try / catch块封装一样)。 […]

在MongoDB中更新一个数组

对于下面的结构,我正在尝试更新选项下的第一个数组项目[“milk”,1]: { options:[["milk", 0], ["chocolate", 0], ["others", 0]], timestamp:"2017-09-26T14:42:49.359Z" title:"shopping list" username:"a" } 这是我使用的mongoose片段。 router.put('/',(req,res) => { let {_id, value, option} = req.body; eventModel.findOneAndUpdate( {_id:_id, options: [option, value]}, { $set: {"options.$": [option, value + 1]}}, function(err){ if(err){ res.status(400).json({ error: err }); } console.log("event updated"); }); }); 我总是得到“事件更新”,没有任何错误,但项目没有得到更新,任何帮助表示赞赏。 谢谢

Mongoose或MongoDB的架构定义?

mongoose是用来定义一个模式。 对? 是否有可能通过mongo Shell使用mongoDB创build模式? 喜欢 例如:name:String

节点 – 使用DocumentID更新整个MongoDB文档

我试图在“平均值”中执行CRUD操作。 我正在尝试使用documentid更新整个文档。 我不知道如何做到这一点。 以下是我的代码: Users.prototype.updateUser = function (req, cbk) { var self = this; var reqObj = req.body; var response = { status: false, err: null, data: null }; console.log(new Date() + " | user update ", reqObj) self.db.collection('users').update({_id:ObjectId(reqObj._id)}, {upsert:true}, function (err, result) { if (!err && result.length > 0) { response['status'] = true; response['data'] […]

MongoDB重复键错误

所以现在我正在开发一个服务来允许多个事件在MongoDB上存储数据。 他们通过在每次发生新事件时在MongoDB上创build新的集合来存储事件数据。 如果同一事件需要存储一组不同的数据,则应该创build一个MongoDB中的新文档。 下面的代码是我创build的服务来处理这个。 import WhiteBoardEvent from '../model/event.model'; import IEventStore from '../interface/eventStore.interface'; import * as MongoClient from 'mongodb'; export class EventStore implements IEventStore { private mongoDBEndpoint = "mongodb://192.168.10.10:27017"; public insert(event: WhiteBoardEvent, callback: (err: any) => void): void { MongoClient.connect(this.mongoDBEndpoint, { connectTimeoutMS: 1000 }, (connErr, db) => { if (connErr) { db.close(); callback(connErr); return; } this.getNextSequence(db, […]

如何获取嵌套的JSON对象MongoDB的数据与node.js

我在我的MONGODB中有一个JSON对象 { "_id" : ObjectId("59d4b9848621854d8fb2b1e1"), "Bot_name" : "Scheduling bot", "Modules" : [ { "ModuleID" : "1111", "ModuleStatement" : "This is a Sceduling bot, Would you like to book a flight?", "_id" : ObjectId("59d4b9968621854d8fb2b1e3"), "ModuleResponse" : [ { "Response" : "yes", "TransBotID" : "1112" }, { "Response" : "no", "TransBotID" : "1113" } ] }, { […]

如何在mongoose中引用模式的id

const mongoose = require('mongoose'); const Schema = mongoose.Schema; const CollageSchema = new Schema({ collage_name: { type: String, required: [true, 'Name field is required'] }, university_id: { type: [{ type: Schema.Types.ObjectId, ref: 'university' }] }, type: { type: String, enum: ['autonomous', 'private'], required: [true, 'type field is required'] } }); const Collage = mongoose.model('collage', CollageSchema); module.exports […]

Mongoose Model.find()参数的问题

我正在研究一个节点应用程序(与IOS前端),并偶然发现这个问题。 我和mongoose一起使用了mongodb。 我有这个路由,/得到接收正确的用户ID,并试图find所有'Voots'具有相同的用户ID。 这是'Voot'的样子: { "_id": "59db9fa2659bb30004899f05", "title": "Pizza!", "body": "hoppakeeee", "user": { "__v": 0, "password": "$2a$10$Rwb5n7QoKaFaAOW37V0aWeEeYgfn6Uql474ynUXb83lHi7H2CuB1u", "email": "noelle.schrikker@planet.nl", "name": "Noelle Schrikker", "_id": "59db9ecf659bb30004899f04" }, "__v": 0, "downVotes": [], "upVotes": [] }, 正如你所看到的,它有一个名为user的属性,它是一个包含名字,电子邮件,密码和_id的用户对象。 我按照我的要求这样做: // Send all voots from the specific user Voot.find({"user._id": userId}, function(err, voots) { if (err) { console.log(err); res.status(400).send(err) res.end() } if […]