搜尋

首頁  >  問答  >  主體

MongoDB 和 Mongoose 查詢語句寫法有什麼不同?

MongoDB 可以這樣寫

db.getCollection('users').find({})

db.users.find({})

這裡的 db 是什麼,在程式碼中應該怎麼定義?

在 mongoose 通常這樣寫:

var User = require('../models/user')
User.find({})

怎麼在 mongoose 中應該怎麼定義 db 才可以也寫作

db.users.find({})

這種寫法?

世界只因有你世界只因有你2793 天前801

全部回覆(3)我來回復

  • 黄舟

    黄舟2017-04-28 09:06:30

    (⊙o⊙)… 你看看你的程式碼前面有木頭

    var mongoose = require('mongoose');
    var db = mongoose.connect('mongodb://localhost/tasks');

    這樣的程式碼啊? db其實就是一個mongoose的連線實例。

    而你的User是一個Model來的吧?你的程式碼應該差不多是這樣的:

    var mongoose = require('mongoose');
    var db = mongoose.connect('mongodb://localhost/tasks');
    var schema = new mongoose.Schema({
        name: String,
        path: String
    });
    module.exports = mongoose.model('User', schema);

    這樣你就可以使用:

    User.find({});

    回覆
    0
  • 漂亮男人

    漂亮男人2017-04-28 09:06:30

    db 是目前操作的資料庫操作對象,是指使用 use db 切換到的資料庫

    回覆
    0
  • 给我你的怀抱

    给我你的怀抱2017-04-28 09:06:30

    module.exports = mongoose.model('User', schema);

    應該像樓上說的那樣,你的model文件裡是像上面那樣寫的,這樣的話只能像下面這樣的寫法。

    var user = require('../model/user');
    user.find({})

    但是如果使用mongoose卻非得要把寫法寫成db.users.find({}),可以在model檔案裡改一下也可以滿足:

    //model
    module.exports = {
        'users' : mongoose.model('User', schema)
    }
    
    //api
    var db = require('../model/user');
    db.users.find({})

    回覆
    0
  • 取消回覆