Tag: mongoose

在MongoDB和Mongoose中执行全文search的最佳方法

我在Google上search了很多天,我尝试了很多东西,但仍然无法在用户集合上进行全面的全文search。 我试过ElasticSearch,但是很难查询和分页… 我尝试了很多像ElMongo,mongoose全文,Mongoosastic等Mongoose插件…每个人都真的不好logging,我不知道如何执行一个很好的全文search。 所以,我的collections是一个正常的集合: user = { name: String, email: String, profile: { something: String, somethingElse: String } } 我有一个简单的POST页面中的searchinput,如果我inputhello world ,我需要的是在整个收集字段上search我的search查询的匹配单词,并获得结果。 这将是非常好的也有处理一个分页,如每页10项或东西的选项… 什么是实现这个最好的解决scheme? 我在Mongoose,NodeJS和ExpressJS上使用MongoDB 2.6。*。 谢谢。

为什么我会收到错误“尝试打开未closures的连接”?

我试图通过mongoose将我的节点应用程序连接到mongodb。 这似乎是工作,因为我可以添加文档,但我得到错误{ [Error: Trying to open unclosed connection.] state: 2 } 。 我创build了一个非常简单的应用程序,只是为了确保连接我的实际应用程序之前,一切工作正常。 这是我的简单的应用程序: var mongoose = require('mongoose'); var Schema = mongoose.Schema; var timeSchema = new Schema({ timestamp: String }); var Time = mongoose.model('Time', timeSchema); mongoose.connect('mongodb://localhost/mydb'); var db = mongoose.connection; db.on('error', console.error.bind(console, 'connection error: ')); db.once('open', function () { var testA = new Test({ timestamp: […]

通过mongoose将物品推入蒙戈列

我已经search了很好的一点寻找答案,但我相信我迷失了正确的话来描述我后。 基本上我有一个名为“人”的mongodb集合该集合的架构如下: people: { name: String, friends: [{firstName: String, lastName: String}] } 现在,我有一个非常基本的快速应用程序连接到数据库,并成功地创build一个空的朋友数组的“人”。 在申请的次要位置,有一个表格可以添加朋友。 表单接受firstName和lastName,然后POST名称字段也用于引用正确的人员对象。 我很难做的是创build一个新的朋友对象,然后“推”到朋友arrays。 我知道,当我通过mongo控制台执行此操作时,我使用$ push的更新函数作为查找条件后的第二个参数,但似乎无法find合适的方法让mongoose执行此操作。 db.people.update({name: "John"}, {$push: {friends: {firstName: "Harry", lastName: "Potter"}}}); 更新:所以,阿德里安的答案是非常有帮助的。 以下是我为了实现我的目标所做的。 在我的app.js文件中,我使用了一个临时路由 app.get('/addfriend', users.addFriend); 在我的users.js文件中,我有 exports.addFriend = function (req, res, next) { var friend = {"firstName": req.body.fName, "lastName": req.body.lName}; Users.findOneAndUpdate({name: req.user.name}, {$push: {friends: friend}}); };

Node.js和Mongoose正则expression式查询多个字段

我想用两个相同的正则expression式来查询多个字段。 在这个查询中,我想接受单个文本input,并检查firstName和lastName字段的结果。 我可以使用mongoose文档中的正则expression式来查询单个字段,但“或”子句的语法给我带来麻烦。 var re = new RegExp(req.params.search, 'i'); app.User.find().or([{ 'firstName': { $regex: re }}, { 'lastName': { $regex: re }}]).sort('title', 1).exec(function(err, users) { res.json(JSON.stringify(users)); }); (我在node.js 0.6.12上运行mongoose 2.7.1)

在mongoose中id和_id有什么区别?

mongoose中的_id和id什么区别? 哪个更适合参考?

如何在Mongoose模型中定义方法?

我的locationsModel文件: mongoose = require 'mongoose' threeTaps = require '../modules/threeTaps' Schema = mongoose.Schema ObjectId = Schema.ObjectId LocationSchema = latitude: String longitude: String locationText: String Location = new Schema LocationSchema Location.methods.testFunc = (callback) -> console.log 'in test' mongoose.model('Location', Location); 要调用它,我正在使用: myLocation.testFunc {locationText: locationText}, (err, results) -> 但是我得到一个错误: TypeError: Object function model() { Model.apply(this, arguments); } has no […]

mongoose填充vs对象嵌套

使用mongoose种群和直接目标包含之间是否有任何性能差异(查询的处理时间)? 什么时候应该使用? mongoose群体例子: var personSchema = Schema({ _id : Number, name : String, stories : [{ type: Schema.Types.ObjectId, ref: 'Story' }] }); var storySchema = Schema({ _creator : { type: Number, ref: 'Person' }, title : String, }); mongoose对象嵌套示例: var personSchema = Schema({ _id : Number, name : String, stories : [storySchema] }); var storySchema […]

我如何使用Node.js在MongoDB中使用cursor.forEach()?

我在我的数据库中有一个巨大的文件集合,我想知道如何运行所有文件并更新它们,每个文件具有不同的值。

我如何格式化来自MongoDB的date?

我使用Jade在Express.js中呈现我的视图。 我将文档保存在MongoDB中,并使用Mongoose来访问我的文档。 我保存创build新文档时创build的默认date,并将该date创build的属性返回到视图,其中需要格式化。 存储在MongoDB中的date格式是: Thu Dec 29 2011 20:14:56 GMT-0600 (CST) 我的问题是:我如何格式化这个date从翡翠(或Mongoose或Node.JS)从MongoDB回来?

mongoosefindOneAndUpdate不起作用

我正在尝试在mongoose中使用“findOneAndUpdate”,并且我发送的更新的JS对象没有被保存到mongo中。 保存时我没有收到错误,但是我确实收到了更新对象的空值。 任何想法我可能做错了什么? 这个例子是试图更新整个对象存储在mongo中,即覆盖名称对象。 var query = {"_id": id}; var update = {name: {first: 'john', last: 'smith'}}; var options = {new: true}; People.findOneAndUpdate(query, update, options, function(err, person) { if (err) { console.log('got an error'); } // at this point person is null. });