V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
CareiOS
V2EX  ›  Node.js

mongoose 保存成功,但是用其它工具看 test 数据库中没有 Blog 这个 Collection

  •  
  •   CareiOS · 2016-06-01 14:36:15 +08:00 · 2775 次点击
    这是一个创建于 3097 天前的主题,其中的信息可能已经有所发展或是发生改变。
    var mongoose = require('mongoose');
    var Schema = mongoose.Schema;
    mongoose.connect('mongodb://localhost/test');
    var db = mongoose.connection;
    db.on('error', console.error.bind(console, 'connection error:'));
    db.once('open', function (callback) {
      // yay!
      var blogSchema = new Schema({
        title:  String,
        author: String,
        body:   String,
        comments: [{ body: String, date: Date }],
        date: { type: Date, default: Date.now },
        hidden: Boolean,
        meta: {
          votes: Number,
          favs:  Number
        }
      });
      var Blog = mongoose.model('Blog', blogSchema);
      var blog = new Blog({
        title: 'this is my blog title',
        author: 'me',
        body: 'the body of my blog. can you see that?'
      });
    
      blog.save();
    });
    

    开发环境: Nodejs + Express + Mac + MongoDB, 都在最新版本

    第 1 条附言  ·  2016-06-01 15:28:33 +08:00
    换了一个工具 mongobooster 就可以查到数据了。
    10 条回复    2016-06-01 17:17:05 +08:00
    DoraJDJ
        1
    DoraJDJ  
       2016-06-01 14:57:20 +08:00 via Android
    用其他工具查的时候试试看 Blogs ?
    GordianZ
        2
    GordianZ  
    MOD
       2016-06-01 14:58:04 +08:00
    .save 的返回你都没处理,你怎么知道保存成功了……
    Mirachael
        3
    Mirachael  
       2016-06-01 15:10:25 +08:00
    是 blogs 命名的 collection 吧,如果你要指定自定义的 collection, 需要在 schema 中设置,{collection: 'Blog'}
    gyteng
        4
    gyteng  
       2016-06-01 15:13:03 +08:00
    其它工具是指 Robomongo 吗,旧版本的连接 mongodb 3.2 会有这个问题
    CareiOS
        5
    CareiOS  
    OP
       2016-06-01 15:16:24 +08:00
    @gyteng 对的,我是用的 Robomongo 0.8.4
    CareiOS
        6
    CareiOS  
    OP
       2016-06-01 15:17:49 +08:00
    @GordianZ 我在 save 中加了一个 function(error, model) {} ,error 为空, model 是有值的。
    CareiOS
        7
    CareiOS  
    OP
       2016-06-01 15:22:15 +08:00
    @mojixiang1102 我直接安装好 mongodb, 然后运行的 shell:mongod --dbpath ./data , 运行以上代码后,用 Robomongo 查看数据库 test 创建成功了,就是没有 Collections, test 数据库下面 Collections,Functions,Users 都为 0
    CareiOS
        8
    CareiOS  
    OP
       2016-06-01 15:22:38 +08:00
    @DoraJDJ 我试一试其他工具。
    CareiOS
        9
    CareiOS  
    OP
       2016-06-01 15:28:03 +08:00
    @DoraJDJ 果然是工具 Robomongo 问题。
    doublelam
        10
    doublelam  
       2016-06-01 17:17:05 +08:00
    mongoose 会自动在集合名后加 s ,所以你的集合其实是 blogs ,如果要指定是 blog ,这样写:
    var Blog = mongoose.model('Blog', blogSchema,'Blog');
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2536 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:30 · PVG 23:30 · LAX 07:30 · JFK 10:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.