Node.js
Node.JSとMongoDB。
サーチ…
備考
これは、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" }
)
この操作は、 room
がBedroom (第1パラメータ)である文書を 'lights'コレクションで検索します 。次に、一致するドキュメントのstatus
プロパティをOn (2番目のパラメータ)に更新し、次のようなWriteResultオブジェクトを返します。
{ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }
UpdateOne
UpdateOne()メソッドは、1つのドキュメント(更新パラメータ)を変更します。
db.countries.update(
{ country: "Sweden" },
{ capital: "Stockholm" }
)
この操作では、 'countries'コレクションでcountry
がSweden (第1パラメータ)のドキュメントが検索されます 。その後、一致するドキュメントプロパティのcapital
をStockholm (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.
});