Tag: mongodb

Mongoose:Model.create和Collection.insert有什么区别

我想在MongoDB中做一个批量插入工作,我在mongoose中发现了两种方法: 一种方法是使用insert : dataArr = [ { id: "", name: "" } { id: "", name: "" } ] Collection.insert(dataArr) 另一种方式是Model.create : Model.create(dataArr) 两者都可以完成批量插入作业,但它们之间有什么区别? 哪一个更有效率?

是否有一种方法来自动生成ObjectIdmongoose模型new'ed?

有没有办法在mongoose中声明一个Model模式,这样当模型被new'ed时_id字段会自动生成? 例如: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var ObjectIdSchema = Schema.ObjectId; var ObjectId = mongoose.Types.ObjectId; var PersonSchema = new Schema({ _id: ObjectIdSchema, firstName: {type: String, default: 'N/A'}, lastName: {type: String, default: 'N/A'}, age: {type: Number, min: 1} }); var Person = mongoose.model('Person', PersonSchema); 起初,我认为太棒了,我会做 _id: {type:ObjectIdSchema, default: new ObjectId()} 但当然这是行不通的,因为新的ObjectId()只在模式的初始化时被调用。 所以调用新的Persion()两次会创build两个具有相同_id值的对象。 所以有办法做到这一点,每当我做“新人()”一个新的ObjectId()生成? […]

在mongodb中插入当前的date时间

我一直有麻烦插入一个实际的date时间对象在mongodb使用mongojs驱动程序nodejs。 任何帮助? var currentdate = new Date(); var datetime = currentdate.getDate() + "/" + (currentdate.getMonth()+1) + "/" + currentdate.getFullYear() + " @ " + currentdate.getHours() + ":" + currentdate.getMinutes() + ":" + currentdate.getSeconds(); db.test.update({ conversation: conv },{ $push:{ messages: { message: message, pseudo: name, current_date: datetime }} },{upsert: true});

从mongodb游标stream到node.js中的Express响应

我在所有的花式node.js / mongodb / express平台上玩耍,偶然发现了一个问题: app.get('/tag/:tag', function(req, res){ var tag=req.params.tag; console.log('got tag ' + tag + '.'); catalog.byTag(tag,function(err,cursor) { if(err) { console.dir(err); res.end(err); } else { res.writeHead(200, { 'Content-Type': 'application/json'}); //this crashes cursor.stream().pipe(res); } }); }); 正如你可能猜到的, catalog.byTag(tag, callback)对Mongodb执行find()查询并返回游标 这导致错误: TypeError: first argument must be a string or Buffer 根据mongodb驱动程序文档 ,我试图通过这个转换器stream() : function(obj) {return JSON.stringify(obj);} […]

如何使用GridFS来存储使用Node.js和Mongoose的图像

我是Node.js的新手 任何人都可以提供一个示例如何使用GridFS存储和检索二进制数据,如图像,使用Node.js和Mongoose? 我是否需要直接访问GridFS?

mongoosefindOneAndUpdate和upsert返回没有错误,没有文件的影响

我有一个非常小的模型: var CompanySchema = new mongoose.Schema({ name: { type: String, required: true, unique: true }, }); var Company = mongoose.model('Company', CompanySchema) 我试图添加一个文件,如果它不存在。 目前,我testing时没有任何文件: models.Company.findOneAndUpdate({ name: 'companyName' }, {upsert: true}, function(err, numberAffected, raw){ console.log(err, numberAffected, raw) }) 这是使用Mongoose文档的upsert选项 但是err为null , numberAffected为null。 为什么不更新我的文档?

为什么明确告诉我,我的默认视图引擎没有定义?

我正在使用nodejs和mongodb在后端为我正在工作的应用程序。 我正在使用快递testing应用程序,我试图使用ejs呈现我的HTML文件。 但是,我有我的默认视图引擎没有被定义的问题。 这是我的app.js: /** * Module dependencies. */ var express = require('express') , routes = require('./routes') , user = require('./routes/user') , http = require('http') , path = require('path'); var conf = require('./conf'); var app = express(); var mongoose = require('mongoose'); , Schema = mongoose.Schema , ObjectId = mongooseSchemaTypes.ObjectID; var UserSchema = new Schema({}) , […]

在正在运行的节点JS中使用正则expression式的Mongo查询variables

我在这里有一个问题。 我想在我的Node JS文件中查询我的MongoDB,使用像LIKE这样的常规关系数据库。 问题是我想要的东西不是一个文字…这是一个variables! 到目前为止,我还没有find好的办法。 这是我拿到的“durrr first try”镜头: var result = postData.replace(/\+/g,' ').substring(5); db.testlogwiki.find({"line_text" : /result/ }; //predictably only matches to the literal "result" as opposed to my variable testlogwiki是在Mongo中创build的…我已经运行了,而且这样做确实与包含“result”的“line_text”的数据库条目差不多。 这似乎是一个非常简单的问题

哪个数据库适合我的应用程序mysql或mongodb? 使用Node.js,Backbone,Now.js

我想使用前端:docs.google.com(没有它的API,完全在我自己的服务器上)使用前端:骨干后端:节点 你认为哪个数据库更好? mysql或mongodb? 应该支持良好的可扩展性。 我熟悉MySQL的PHP​​和我会很高兴,如果答案是MySQL。 但是我看到很多教程,他们使用mongodb,为什么他们使用mongodb没有mysql? 我应该使用什么? 任何人都可以给我链接一些示例应用程序(与源)build立使用骨干,节点,MySQL(或mongo)。 或至less应用程序。 与节点和MySQL 谢谢

使用Node.js和mongodb处理超时

我目前正在testing一些代码如何站在以下的情况: Node.js应用程序启动并成功build立到mongodb的连接 在成功build立连接之后,mongodb服务器将停止,所有后续请求都会失败 要做到这一点,我已经得到了使用官方驱动程序(在这里find: https : //github.com/mongodb/node-mongodb-native )的代码: MongoClient.connect('mongodb://localhost:27017/testdb', function(err, db) { app.get('/test', function(req, res) { db.collection('users', function (err, collection) { console.log(err); if (err) { // ## POINT 1 ## // Handle the error } else { collection.find({ 'username': username }, { timeout: true }).toArray(function(err, items) { console.log(err); if (err) { // ## POINT 2 […]