https://www.w3schools.com/nodejs/nodejs_mongodb.asp
dbo.collection( "ツアー")。insertOne(このmyobj、コールバック)対
db.collection( "ツアー")insertOne(このmyobj、コールバック)【注意:URLはデータベース名を持っているかどうか)
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myobj = { name: "Company Inc", address: "Highway 37" };
dbo.collection("customers").insertOne(myobj, function(err, res) {
if (err) throw err;
console.log("1 document inserted");
db.close();
});
});
var MongoClient = require('mongodb').MongoClient,
assert = require('assert'),
Hapi = require('hapi');
var url = 'mongodb://localhost:27017/learning_mongo'
var server = new Hapi.Server();
server.connection({
port:8080
})
server.route( [
// Get tour list
{
method: 'GET',
path: '/api/tours',
config: {json: {space: 2}},
handler: function(request, reply) {
var findObject = {};
for (var key in request.query) {
findObject[key] = request.query[key]
}
collection.find(findObject).toArray(function(error, tours) {
assert.equal(null,error);
reply(tours);
})
}
},
// Add new tour
{
method: 'POST',
path: '/api/tours',
handler: function(request, reply) {
collection.insertOne(request.payload, function(error, result) {
assert.equal(null,error);
reply(request.payload);
})
}
},
// Get a single tour
{
method: 'GET',
path: '/api/tours/{name}',
config: {json: {space: 2}},
handler: function(request, reply) {
collection.findOne({"tourName":request.params.name}, function(error, tour) {
assert.equal(null,error);
reply(tour);
})
}
},
// Update a single tour
{
method: 'PUT',
path: '/api/tours/{name}',
handler: function(request, reply) {
if (request.query.replace == "true") {
request.payload.tourName = request.params.name;
console.log(request.payload);
collection.replaceOne({"tourName": request.params.name},
request.payload,
function(error, results) {
collection.findOne({"tourName":request.params.name},
function(error, results) {
reply(results);
})
})
} else {
collection.updateOne({tourName:request.params.name},
{$set: request.payload},
function(error, results) {
collection.findOne({"tourName":request.params.name}, function(error, results) {
reply(results);
})
})
}
}
},
// Delete a single tour
{
method: 'DELETE',
path: '/api/tours/{name}',
handler: function(request, reply) {
collection.deleteOne({tourName:request.params.name},
function(error, results) {
reply ().code(204);
})
}
},
// Home page
{
method: 'GET',
path: '/',
handler: function(request, reply) {
reply( "Hello world from Hapi/Mongo example.")
}
}
])
MongoClient.connect(url, function(err, db) {
assert.equal(null,err);
console.log("connected correctly to server");
collection = db.collection('tours');
server.start(function(err) {
console.log('Hapi is listening to http://localhost:8080')
})
})
上記MongoClient.connect()でコレクション:
彼らは別のものを意味します。あなたが使用している場合は var
、変数がスコープ内で宣言されます(機能の例)です。あなたが使用していない場合 var
、それは与えられた名前か、それはその後、アタッチ(ブラウザでそれをやっている場合、ウィンドウ、)グローバルオブジェクトによる変数と出会うまでは、変数はスコープの層を通ってバブルアップ。次にこれを 非常によく似た グローバル変数へ。しかし、それはまだで削除することができます delete
(また、使用することができなかった誰か他の人のコードである可能性が最も高く var
)。あなたが使用している場合は var
、グローバルスコープでは、変数がある 真のグローバル および削除することはできません。
これは、私の意見では、JavaScriptで最も危険な問題の一つであり、廃止予定、または少なくとも警告以上の警告を調達する必要があります。その理由は、それが忘れがちだが、ある var
事故により、グローバルオブジェクトにバインドされた共通変数名をしています。これは奇妙な、デバッグ動作に困難作り出します。
https://stackoverflow.com/questions/2485423/is-using-var-to-declare-variables-optional
検索対findOne()()
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("customers").findOne({}, function(err, result) {
if (err) throw err;
console.log(result.name);
db.close();
});
});
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
dbo.collection("customers").find({}).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
結果オブジェクト
上記の例の結果からわかるように、結果は、対象となる各文書を含む配列に変換することができます。
第三文書のアドレスEG戻るには、ちょうど第三配列オブジェクトのアドレスプロパティを参照してください。
例
第三文書のアドレスを返します:
console.log(結果[2] .address)。
これは、この結果を生成します:
アップルST 652
名前のアルファベット順に結果をソート:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var mysort = { name: 1 };
dbo.collection("customers").find().sort(mysort).toArray(function(err, result) {
if (err) throw err;
console.log(result);
db.close();
});
});
アドレス「山21」との文書を削除します。
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://localhost:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = { address: 'Mountain 21' };
dbo.collection("customers").deleteOne(myquery, function(err, obj) {
if (err) throw err;
console.log("1 document deleted");
db.close();
});
});