サーチ…


備考

これは、mongo dbとnodejを使用するための基本的なCRUD操作です。

質問:ここでやることができる他の方法はありますか?

答え:はい、これを行う方法はたくさんあります。

質問:マングースを使用していますか?

回答:いいえ。あなたに役立つその他のパッケージがあります。

質問:どこでmongooseの全文を入手できますか?

答え: ここをクリック

データベースへの接続

ノードアプリケーションからmongoデータベースに接続するには、mongooseが必要です。

Mongooseをインストールするあなたのアプリケーションのトートに行き、Mongooseをインストールする

npm install mongoose

次に、データベースに接続します。

var mongoose = require('mongoose');

//connect to the test database running on default mongod port of localhost  
mongoose.connect('mongodb://localhost/test');



//Connecting with custom credentials
mongoose.connect('mongodb://USER:PASSWORD@HOST:PORT/DATABASE');


//Using Pool Size to define the number of connections opening
//Also you can use a call back function for error handling
mongoose.connect('mongodb://localhost:27017/consumers', 
                 {server: { poolSize: 50 }}, 
                 function(err) {
                    if(err) {
                        console.log('error in this')
                        console.log(err);
                        // Do whatever to handle the error 
                    } else {
                        console.log('Connected to the database');
                    }
                });  

新しいコレクションを作成する

Mongooseでは、すべてがスキーマから派生しています。スキーマを作成できます。

var mongoose = require('mongoose');
        
var Schema = mongoose.Schema;

var AutoSchema = new Schema({
    name : String,
    countOf: Number,
});
// defining the document structure 

// by default the collection created in the db would be the first parameter we use (or the plural of it)    
module.exports = mongoose.model('Auto', AutoSchema); 

// we can over write it and define the collection name by specifying that in the third parameters. 
module.exports = mongoose.model('Auto', AutoSchema, 'collectionName'); 


// We can also define methods in the models. 
AutoSchema.methods.speak = function () {
  var greeting = this.name
    ? "Hello this is  " + this.name+ " and I have counts of "+ this.countOf
    : "I don't have a name";
  console.log(greeting);
}
mongoose.model('Auto', AutoSchema, 'collectionName'); 

上記のように、mongoose.model()でコンパイルする前に、メソッドをスキーマに追加する必要があります。

ドキュメントを挿入する

コレクションに新しい文書を挿入するために、スキーマのオブジェクトを作成します。

var Auto = require('models/auto')
var autoObj = new Auto({
    name: "NewName", 
    countOf: 10
});

私たちは以下のように保存します

autoObj.save(function(err, insertedAuto) {
    if (err) return console.error(err);
    insertedAuto.speak();
    // output: Hello this is NewName and I have counts of 10
});

これにより、新しい文書がコレクションに挿入されます

読書

コレクションからデータを読むことは非常に簡単です。コレクションのすべてのデータを取得します。

var Auto = require('models/auto')
Auto.find({}, function (err, autos) {
      if (err) return console.error(err);
       // will return a json array of all the documents in the collection
      console.log(autos); 
})

条件付きのデータの読み取り

Auto.find({countOf: {$gte: 5}}, function (err, autos) {
      if (err) return console.error(err);
       // will return a json array of all the documents in the collection whose count is greater than 5
      console.log(autos); 
})

必要なすべてのフィールドのオブジェクトとして2番目のパラメータを指定することもできます

Auto.find({},{name:1}, function (err, autos) {
      if (err) return console.error(err);
       // will return a json array of name field of all the documents in the collection
      console.log(autos); 
})

コレクション内の1つの文書を検索する。

Auto.findOne({name:"newName"}, function (err, auto) {
      if (err) return console.error(err);
     //will return the first object of the document whose name is "newName"
      console.log(auto); 
})

コレクション内の1つのドキュメントをIDで検索します。

Auto.findById(123, function (err, auto) {
      if (err) return console.error(err);
     //will return the first json object of the document whose id is 123
      console.log(auto); 
})

更新中

コレクションとドキュメントを更新するには、次のいずれかの方法を使用できます。

メソッド

  • 更新()
  • updateOne()
  • updateMany()
  • replaceOne()

更新()

update()メソッドは、1つまたは複数のドキュメント(更新パラメータ)を変更します。

db.lights.update(
   { room: "Bedroom" },
   { status: "On" }
)

この操作は、 roomBedroom (第1パラメータ)である文書を 'lights'コレクションで検索します 。次に、一致するドキュメントのstatusプロパティをOn (2番目のパラメータ)に更新し、次のようなWriteResultオブジェクトを返します。

{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }

UpdateOne

UpdateOne()メソッドは、1つのドキュメント(更新パラメータ)を変更します。

db.countries.update(
   { country: "Sweden" },
   { capital: "Stockholm" }
)

この操作では、 'countries'コレクションでcountrySweden (第1パラメータ)のドキュメントが検索されます 。その後、一致するドキュメントプロパティのcapitalStockholm (2番目のパラメータ)に更新し、次のようなWriteResultオブジェクトを返します。

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

UpdateMany

UpdateMany()メソッドは、複数のドキュメント(更新パラメータ)を変更します。

db.food.updateMany(
   { sold: { $lt: 10 } },
   { $set: { sold: 55 } }
)

どここの操作は、(「食品」コレクション内の)すべてのドキュメントを更新sold設定することにより、10 *(第一パラメータ) よりも小さいですsold 55へ。次に、次のようなWriteResultオブジェクトを返します。

{ "acknowledged" : true, "matchedCount" : a, "modifiedCount" : b }

a =一致する文書の数
b =変更された文書の数


ReplaceOne

最初に一致した文書(置換文書)

countriesというこのサンプルコレクションには、3つのドキュメントが含まれています。

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Spain" }

次の操作は、文書{ country: "Spain" }を文書{ country: "Finland" }置き換えます

db.countries.replaceOne(
   { country: "Spain" },
   { country: "Finland" }
)

そして、

{ "acknowledged" : true, "matchedCount" : 1, "modifiedCount" : 1 }

収集の例には以下が含まれています:

{ "_id" : 1, "country" : "Sweden" }
{ "_id" : 2, "country" : "Norway" }
{ "_id" : 3, "country" : "Finland" }

削除

マングースのコレクションから文書を削除するには、次のようにします。

Auto.remove({_id:123}, function(err, result){
    if (err) return console.error(err);
    console.log(result); // this will specify the mongo default delete result.
});


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow