标签: mongoose

如何在不定义架构的情况下使用Mongoose?

在早期版本的Mongoose(对于node.js)中,有一个选项可以在不定义模式的情况下使用它

var collection = mongoose.noSchema(db, "User");
Run Code Online (Sandbox Code Playgroud)

但在当前版本中,"noSchema"功能已被删除.我的模式可能经常更改,并且实际上不适合定义的模式,所以有没有一种在mongoose中使用无模式模型的新方法?

mongoose mongodb node.js

106
推荐指数
4
解决办法
6万
查看次数

mongoose vs mongodb(nodejs modules/extensions)哪个更好?为什么?

我刚到Node.js看到有很多lib用于MongoDB,最流行的似乎是这两个:( mongoose和mongodb).我可以获得这些扩展的优缺点吗?这两个有更好的替代品吗?

编辑:找到一个看起来也很有趣的节点-mongolian的新库,并且"Mongolian DeadBeef是一个非常棒的Mongo DB node.js驱动程序,它试图接近mongodb shell." (readme.md)

https://github.com/marcello3d/node-mongolian

这只是为了查看这个的新人增加了更多的资源,所以基本上蒙古语就像ODM一样......

javascript mongoose mongodb node.js

106
推荐指数
4
解决办法
5万
查看次数

NodeJS中的JavaScript OOP:怎么样?

我习惯于Java中的经典OOP.

使用NodeJS在JavaScript中进行OOP的最佳实践是什么?

每个Class都是一个文件module.export

如何创建类?

this.Class = function() {
    //constructor?
    var privateField = ""
    this.publicField = ""
    var privateMethod = function() {}
    this.publicMethod = function() {} 
}
Run Code Online (Sandbox Code Playgroud)

vs.(我甚至不确定它是否正确)

this.Class = {
    privateField: ""
    , privateMethod: function() {}

    , return {
        publicField: ""
        publicMethod: function() {}
    }
}
Run Code Online (Sandbox Code Playgroud)

this.Class = function() {}

this.Class.prototype.method = function(){}

...
Run Code Online (Sandbox Code Playgroud)

继承如何工作?

是否有在NodeJS中实现OOP的特定模块?

我发现了一千种不同的方法来创造类似于OOP的东西..但我不知道最常用/实用/干净的方式是什么.

奖金问题:与MongooseJS一起使用的建议"OOP风格"是什么?(可以将MongooseJS文档视为类和用作实例的模型吗?)

编辑

这里是JsFiddle中的一个例子,请提供反馈.

//http://javascriptissexy.com/oop-in-javascript-what-you-need-to-know/
function inheritPrototype(childObject, parentObject) {
    var copyOfParent = Object.create(parentObject.prototype)
    copyOfParent.constructor = childObject
    childObject.prototype = …
Run Code Online (Sandbox Code Playgroud)

javascript oop inheritance mongoose node.js

106
推荐指数
5
解决办法
12万
查看次数

如何使用2d地理索引正确地在Mongoose模式中定义数组中的对象

我目前在为下面的文档创建架构时遇到问题.来自服务器的响应始终将"trk"字段值返回为[Object].不知怎的,我不知道这应该如何运作,因为我至少尝试过对我有意义的所有方法;-)

如果这有帮助,我的Mongoose版本是3.6.20和MongoDB 2.4.7在我忘记之前,将它设置为Index(2d)会很不错

原始数据:

{
    "_id": ObjectId("51ec4ac3eb7f7c701b000000"),
    "gpx": {
        "metadata": {
            "desc": "Nürburgring VLN-Variante",
            "country": "de",
            "isActive": true
        },
    "trk": [
    {
        "lat": 50.3299594,
        "lng": 6.9393006
    },
    {
        "lat": 50.3295046,
        "lng": 6.9390688
    },
    {
        "lat": 50.3293714,
        "lng": 6.9389939
    },
    {
        "lat": 50.3293284,
        "lng": 6.9389634
    }]
    }
}
Run Code Online (Sandbox Code Playgroud)

猫鼬模式:

var TrackSchema = Schema({
            _id: Schema.ObjectId,
            gpx: {
                metadata: {
                    desc: String,
                    country: String,
                    isActive: Boolean
                },
                trk: [{lat:Number, lng:Number}]
            }
        }, { collection: "tracks" });
Run Code Online (Sandbox Code Playgroud)

Chrome中"网络"标签的响应总是如此(这只是错误的trk部分):

{ trk: 
      [ [Object],
        [Object], …
Run Code Online (Sandbox Code Playgroud)

schema geo mongoose mongodb node.js

106
推荐指数
5
解决办法
18万
查看次数

为什么mongoose总是在我的集合名称的末尾添加一个s

例如,此代码会生成一个名为"datas"的集合

var Dataset = mongoose.model('data', dataSchema);
Run Code Online (Sandbox Code Playgroud)

此代码导致创建一个名为"users"的集合

var User = mongoose.model('user', dataSchema);
Run Code Online (Sandbox Code Playgroud)

谢谢

mongoose mongodb node.js

104
推荐指数
5
解决办法
3万
查看次数

使用Node.js,Express和Mongoose上传图像

随着事情多年来的变化,请考虑更新的答案,这些答案包含更多最新信息!

由于许多新的Node.js库很快就被淘汰了,而且我想要询问有关使用以下内容上传图像的例子相对较少:

  • Node.js(v0.4.1)
  • 快递(1.0.7)
  • 猫鼬(1.1.0).

别人怎么做的?

我发现:node-formidable,但我不熟悉上传图片,所以我想学习一般的东西以及使用Node.js和Express这样做的方法.

file-upload image mongoose node.js express

102
推荐指数
7
解决办法
12万
查看次数

什么是Mongoose错误对于路径"_id"的值XXX,对ObjectId的转换失败?

当发送请求/customers/41224d776a326fb40f000001和文件_id 41224d776a326fb40f000001不存在时,docnull,我正在返回404:

  Controller.prototype.show = function(id, res) {
    this.model.findById(id, function(err, doc) {
      if (err) {
        throw err;
      }
      if (!doc) {
        res.send(404);
      }
      return res.send(doc);
    });
  };
Run Code Online (Sandbox Code Playgroud)

但是,如果_id不匹配Mongoose所期望的"格式"(我想),例如GET /customers/foo返回一个奇怪的错误:

CastError:对于路径"_id"处的值"foo",转换为ObjectId失败.

那么这个错误是什么?

mongoose mongodb

102
推荐指数
10
解决办法
14万
查看次数

如何限制退回的商品数量?

myModel.find({}, function(err, items){
console.log(items.length);    // big number
});
Run Code Online (Sandbox Code Playgroud)

如何将返回的项目限制为仅插入的最新10项?

mongoose

101
推荐指数
5
解决办法
10万
查看次数

在mongoose中填充嵌套数组

如何在示例文档中填充"组件":

  {
    "__v": 1,
    "_id": "5252875356f64d6d28000001",
    "pages": [
      {
        "__v": 1,
        "_id": "5252875a56f64d6d28000002",
        "page": {
          "components": [
            "525287a01877a68528000001"
          ]
        }
      }
    ],
    "author": "Book Author",
    "title": "Book Title"
  }
Run Code Online (Sandbox Code Playgroud)

这是我的JS,我通过Mongoose获取文档:

  Project.findById(id).populate('pages').exec(function(err, project) {
    res.json(project);
  });
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js

98
推荐指数
6
解决办法
7万
查看次数

在Mongoose中引用另一个模式

如果我有两个模式,如:

var userSchema = new Schema({
    twittername: String,
    twitterID: Number,
    displayName: String,
    profilePic: String,
});

var  User = mongoose.model('User') 

var postSchema = new Schema({
    name: String,
    postedBy: User,  //User Model Type
    dateCreated: Date,
    comments: [{body:"string", by: mongoose.Schema.Types.ObjectId}],
});
Run Code Online (Sandbox Code Playgroud)

我尝试将它们连接在一起,就像上面的例子,但我无法弄清楚如何做到这一点.最终,如果我可以做这样的事情,那将使我的生活变得非常轻松

var profilePic = Post.postedBy.profilePic
Run Code Online (Sandbox Code Playgroud)

javascript mongoose mongodb

96
推荐指数
3
解决办法
10万
查看次数

标签 统计

mongoose ×10

mongodb ×7

node.js ×7

javascript ×3

express ×1

file-upload ×1

geo ×1

image ×1

inheritance ×1

oop ×1

schema ×1