Articles of mongodb

mongoose默认值等于其他值

对于我的项目,我创build了一个userSchema,其简化如下所示: var userSchema = new Schema({ _id: String, screenname: {type: String, required: false, default: "equal _id"}, }); 用户有一个_id,这也是他的用户名。 一切工作到目前为止,直到我试图添加一个额外的字段screenname。 我想要的是当用户创build一个帐户时,他的屏幕名称等于_id的值。 稍后他可以调整它,但默认情况下,它应该等于_id的值。 我也试过了: screenname: {type: String, required: false, default: _id}, 但比课堂_id没有定义。 我应该如何设置默认值等于另一个值?

nodejs等待,直到所有的MongoDB调用循环完成

我正在逐行读取一个CSV文件的数据stream,并在每一行调用一个findOne MongoDB调用,在运行下一个函数之前,我怎么才能等到每行的所有mongo调用都完成? 我见过Promises能做到吗? 但是我发现Promises非常难以理解。 而且我发现的例子都没有包括我想要的。 :/ var validProducts = []; fs.createReadStream(req.file.path) .pipe(csvStream) .on('error', function (err) { console.error(err); }) // loop through all rows .on('data', function (data) { if (data.size === 'a3') { ProductModel.findOne({ sku: data.sku }, function (err, product) { if (product !== null) { product.size = data.size; product.save(); validProducts.push(product); } }); } }); // […]

MongoDB,Mongoose和Node.js 为什么要申报一个模型?

我是面向文档的数据库的新手。 我的问题是为什么我必须在每次启动应用程序时在MongoDB中声明一个模型? 例如: mongoose.model('User', { collection: 'user', properties: [ 'created', 'username', 'password', 'email' ]} //Edited: '}' was missing in original post ); 我想build立所有表一次,并在我的应用程序只饲料或查询数据。 我认为所有的数据架构应该通过CLI或一个特殊的pipe理员(比如PhpMyAdmin for mySql)来设置。 事实certificate,在我的应用程序开始时,每次我声明一个数据模型。 对我来说没有意义。 帮帮我 :)

NodeJS + Express + Mongo Session存储

我目前正在尝试在MongoDb中存储会话。 我尝试了express-session-mongo和connect-mongodb,当我尝试加载login页面时,它们都给了我相同的“500内部服务器错误”。 这让我想,也许在某处与mongoose有冲突。 无论如何,这是我的设置: app.js: var MongoStore = require('connect-mongodb'); var MongoDb = require('mongodb').Db; var Server = require('mongodb').Server; var db = new MongoDb('myDb', new Server('localhost', 27017, {auto_reconnect: true, native_parser: false})); app.configure(function() { app.use(express.logger({format: 'dev'})); app.set('views', __dirname + '/../views'); app.set('view engine', 'jade'); app.set('view options', { layout: false }); app.use(express.bodyParser()); app.use(express.cookieParser()); app.use(mongooseAuth.middleware()); app.use(require('./mysite').middleware()); app.use(express.methodOverride()); }); app.configure('production', function(){ var […]

如何sorting导致nodejs – mongodbsearch,但通过调用dynamic方法

我在通过mongo本地连接器连接到mongodb的nodejs中开发一个web应用程序。 在我的一个js文件中,我有一个通用的方法来调用“find”或“findOne”操作来从mongodb集合中检索我需要的东西,如下所示: 这对我来说可以。 但现在,我需要对结果进行sorting,据我所知,Mongodb使用“sorting”方法来实现这一点。 collection.ensureIndex(indexedFields, function(error, indexName) { if (error) { callback(error); } else { var operation = (params.options.one) ? collection.findOne : collection.find; operation.call(collection, params.selector, params.fields, params.options, function(error, result){ if (error) { … } else { … } } ); } }); 在一个简单的查询中,这应该是这样的:例如: collection.find().sort({field : 1}), 我不知道如何调用“sorting”方法,这是我的通用方法。 有任何想法吗? 谢谢。

在玉模板中显示Mongodb集合

我在node.js和mongodb中是新的。 我设置了一个名为“文章”的mongodb集合。 我想在玉模板中显示这个集合的所有文章。 我用这个代码: server.js: articles: db.article.find() index.jade: -for article in articles .row .twelve.columns .panel li= article.text 玉是非常基本的,但会改变。 事实是,当我运行这个代码时,玉模板中的列表是空的,没有任何显示。 看起来variables'articles'是空的。 有谁知道我怎么能做到这一点? 谢谢

node.js mongojs findOnecallback返回错误为null

目前被这个错误推到了墙上。 我正在用mongodj的mongojs包装器运行node.js应用程序。 我在默认端口上启动了mongod,然后运行 var db = require('mongojs').connect('localhost:27017/my_db'); var users = db.collection('users'); users.findOne({'fb_id' : fbUserMetadata.id}, function(err, user) { console.log(err); console.log(user); debugger; }); 然而,错误和用户都是'空'。 据我所知,即使找不到任何东西,err也应该填充一些数据。 如何使callback函数正常工作? 请原谅这个新手问题。

您将如何在NoSql数据库中对customer> order> ordertem> product进行build模?

我目前正在学习Node.JS,需要实现一个数据库。 所有的Node书籍似乎都认为MongoDB是最好的解决scheme,但似乎无法摆脱像Mongo和Couch这样的NoSQL数据库,我是MS SQL Server的家伙! 所以,我明白,你可以保持结构化的数据作为logging(JSON),但我不知道你如何build模一个典型的电子商务应用程序与以下(简化)表… customers (id, name, address) orders (id, customerID, orderDate) orderItems (id, orderID, productID) products (id, title, description, image) 所以,通常我会写这样的查询(但显然更好地优化)…. SELECT Customers.name, Products.title FROM (orders INNER JOIN customers ON orders.customerID = customers.id) INNER JOIN orderItems ON orderItems.orderID = orders.id INNER JOIN products ON orderItems.productID = products.id 如果我能看到一个如何在NoSQL数据库中工作的例子,那么我可能会开始“得到它”。 或者,我只是坚持使用MSSQL服务器或MySql,它们都与Node兼容吗?

Mongodb / Couchdb而不是MySQL(从PHP切换到节点)

我使用后端的PHP / MySQL / Solr和前端的Javascript / jQuery / Backbone完成了我的大部分Web开发工作。 我已经编写了一些Node应用程序,但是使用了MySQL,而不是使用Mongodb / Couchdb,这是很多Node教程/书籍使用的。 你会开始使用Mongo / Couch而不是MySQL,因为大多数开发Node的人都在使用它? MySQL似乎为我工作得很好,我不清楚切换到Mongo / Couch的优势。 现在我开始一个网站,其中“前端”应用程序服务器是PHP / MySQL,并且数字运算服务器在Node中。 我坚持使用PHP来服务“前台”的原因是因为我非常适合在我的PHP框架中开发。 select节点的原因是因为会有大量空闲/等待时间的同时任务以秒为单位。 这必须是高度可扩展的。 将存储在数据库中的东西就像通常的东西,你将存储在MySQL表中

将模型parameter passing给mongoose模型

我有一个与用户模型有关联的mongoose模型 var exampleSchema = mongoose.Schema({ name: String, <some more fields> userId: { type:mongoose.Schema.Types.ObjectId, ref: 'User' } }); var Example = mongoose.model('Example', userSchema) 当我实例化一个新的模型时,我会这样做: // the user json object is populated by some middleware var model = new Example({ name: 'example', …. , userId: req.user._id }); 模型的构造函数需要大量参数,在模式更改时,这些参数已经变得繁琐难以编写和重构。 有没有办法做这样的事情: var model = new Example(req.body, { userId: req.user._id […]