Articles of mongodb

Mongoose查询:查找数组中的元素

mongoose/ Mongo noob在这里: 我的数据 这里是我的简化数据,每个用户都有自己的文档 { "__v" : 1, "_id" : ObjectId( "53440e94c02b3cae81eb0065" ), "email" : "test@test.com", "firstName" : "testFirstName", "inventories" : [ { "_id" : "active", "tags" : [ "inventory", "active", "vehicles" ], "title" : "activeInventory", "vehicles" : [ { "_id" : ObjectId( "53440e94c02b3cae81eb0069" ), "tags" : [ "vehicle" ], "details" : [ { […]

mongoose的行为和模式

目前我正在学习nodejs和mongodb,有两件事让我迷惑。 (1),当使用新的Schema和模型名称(不在db中)时,名称被改为复数forms。 例: mongoose.model('person', personSchema); 在数据库中,该表将被称为“人”。 这难道不容易混淆新开发者,为什么他们这样实现呢? (2)第二件事是,每当我想引用mongoDb中的现有模型(假设在db中,存在一个名为people的表)。 然后在我的nodejs代码中,我仍然需要定义一个Schema来创build一个引用这个表的模型。 personSchema = new mongoose.Schema({}); mongoose.model('person',personSchema); 不寻常的是,我如何定义模式似乎并不重要,它可以像上面那样是空的,或者填充随机属性,但是模型总是会得到正确的表,并且CRUD操作正常执行。 那么除了定义表结构来创build新表之外,Schema的用法是什么? 非常感谢,

mongoose:不允许更新特定字段

var post = mongoose.Schema({ … _createdOn: Date }); 我想只允许在文档创build时设置_createdOn字段,并且不允许在将来的更新中改变它。 如何在mongoose中完成?

即使提供了文件,也可以在mongoose中获取validation错误

即使我已经提供了所有的字段,但是在保存到数据库时出现以下消息的validation错误, { [ValidationError: Validation failed] message: 'Validation failed', name: 'ValidationError', errors: { Name: { [ValidatorError: Path `Name` is required.] message: 'Path `Name` is required.', name: 'ValidatorError', path: 'Name', type: 'required', value: undefined } } } 这是我想要保存的对象的样子 { Name: 'Nobody Singh', phone: '+919177121364', address: 'flat no 306 koratala apartments\nstreet no 3 ,Himayatnagar, Near Siraj plaza', start: […]

在mongoose中查询虚拟财产

我有一个在我的mongoose模式的虚拟财产,我想知道我是否可以使用此属性查询我的文档。 var PersonSchema = new Schema({ number: {type: Number, required: true}, name: {type: Date, required: true} }); PersonSchema.virtual('capitalCaseName').get(function () { return this.name.toUpperCase(); }); … Person.find({"capitalCaseName": "DANIEL"}).exec(); …

我可以使用MongoDb驱动程序从node.js调用rs.initiate()和rs.Add()吗?

在使用Docker和Kubernetes时,我正在寻求通过边框自动设置MongoDb副本集的过程。 上面的设置不是非常重要的 ,它归结为我需要能够调用mongo副本集命令(例如rs.initiate() , rs.add('anotherserver') , rs.conf() , rs.reconfig()等)从一个node.js应用程序。 注意:它不一定要来自节点应用程序,如果有人知道完成相同的事情的另一种方式,请分享您的想法。 更新:我能够得到这个工作,并已成为其他人使用的边车开源。 https://github.com/leportlabs/mongo-k8s-sidecar https://registry.hub.docker.com/u/leportlabs/mongo-k8s-sidecar

Express会话MongoDB存储:connect-mongo vs connect-mongodb-session

到目前为止(10.7.2016) 快速会议的github页面提出了两个mongodb会话存储: connect-mongo | 基于MongoDB的会话存储 – Github (775颗星) connect-mongodb-session | MongoDB构build和维护的轻量级基于MongoDB的会话存储 – Github (6颗星) 我应该select哪一个,他们两个之间有什么区别? 明显受欢迎的连接 – mongo胜,但它真的是“更好”的产品? 为什么MongoDB本身很麻烦编程连接mongodb会话与现有的解决scheme? 任何build议appriciated。 PS:我注意到存在几个(过时的)SO问题,比较了不同的MongoDB支持的会话存储,但是(就i通知)而言,这两个比较推荐的两个。

节点JS需要抛出AssertionError:缺lesspath

我被困在一个问题几个小时,但无法find它。 我有一个简单的应用程序写入节点js: var mongo = require('./helpers/mongo_utils.js'); var express = require('express'); var user = require('./models/users.js'); mongo.connect(function (err) { if (err) throw err; console.log('connected'); var app = express(); app.listen(3000, function () { console.log('Server set up and start listening on port 3000'); }) }) 所有作品除了我需要的users.js文件。 如果我不需要它,我没有问题,但是当我这样做时,我得到了这个错误: assert.js:89 throw new assert.AssertionError({ ^ AssertionError: missing path at Module.require (module.js:363:3) at […]

通过Mongoose.js连接到使用SSL和mongos的Compose.io MongoDB部署

我正在使用compose.io来托pipetesting和生产mongodb数据库,并试图使用mongoose.js(使用标准nodejs mongodb驱动程序)通过节点应用程序进行连接。 我的连接选项如下: var connectionString = 'mongodb://user:password@host1:port1,host2:port2/dbname?ssl=true'; var options = { mongos: true, server: { ssl: true, sslValidate: true, sslCA: [fs.readFileSync('/path/to/cert/certificate.pem')] // cert from compose.io dashboard } } mongoose.createConnection(connectionString, options); 虽然这个连接似乎悬而未决。 我没有收到服务器的错误,也没有收到“公开”事件。

Mongoosestring到ObjectID

我有ObjectId的string。 var comments = new Schema({ user_id: { type: Schema.Types.ObjectId, ref: 'users',required: [true,'No user id found']}, post: { type: Schema.Types.ObjectId, ref: 'posts',required: [true,'No post id found']}…. export let commentsModel: mongoose.Model<any> = mongoose.model("comments", comments); 我如何使用它: let comment = new commentsModel; str = 'Here my ObjectId code' // comment.user_id = str; comment.post = str; comment.save(); 当我创build一个“评论”模型,并分配一个stringuser_id值或后我保存时出错。 我使console.log(comment)所有的数据被分配到variables。 […]