Diễn đàn    Cổng thông tin , Chính phủ điện tử, VSP (VerySmart Portal), MVC Model View Controller, json, webapi    Kết nối vào DbMongo từ C# v4.5 và các thao tác

Thành viênTrả lời
linux

ubuntu
33  bài
9-8-2019 15:32:15
string connectionString = hConnString.Value; //mongodb://localhost:27017
MongoClient client = new MongoClient(connectionString);
IMongoDatabase database = client.GetDatabase("indoorposition");
IMongoCollection collection = database.GetCollection("staffs");
staffsInfo inf = new staffsInfo();
inf.phone = "0984834728";
inf.full_name = "nguyen ngoc duong";
inf.address = "thanh hoa";
inf.avatar = "";
inf.password = "123";
inf.staff_id = "nv123";
inf.token = "";
inf.gender = false;
BsonDocument doc = inf.ToBsonDocument();
doc.Set("_id", new ObjectId());
collection.InsertOne(doc);
 
aspnet

Lập trình không biên giới
608  bài
9-8-2019 15:35:39
List<BsonDocument> documents = collection.Find(new BsonDocument()).ToList();
foreach (BsonDocument document in documents)
{
string doc = document.ToString();
txtResult.Text += doc + "\r\n";
}

Đọc dữ liệu từ collection
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
9-8-2019 15:53:38
filter Eq :
--------

var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("phone", "0984834728");
List<BsonDocument> documents = collection.Find(filter).ToList();
foreach (BsonDocument document in documents)
{
string doc = document.ToString();
txtResult.Text += doc + "\r\n";
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
9-8-2019 16:1:41
Toán tử like : addres like N'%thanh%'
=====
var builder = Builders<BsonDocument>.Filter;
var filter = builder.Regex("address", "thanh");
List<BsonDocument> documents = collection.Find(filter).ToList();
foreach (BsonDocument document in documents)
{
string doc = document.ToString();
txtResult.Text += doc + "\r\n";
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
13-8-2019 10:40:32
Chuyển đồi từ long thành ngày tháng long-to-date

long unixDate = 1297380023295;
DateTime start = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime date= start.AddMilliseconds(unixDate).ToLocalTime();
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
15-8-2019 15:33:58
MongoClient client = new MongoClient(MongoConn);
IMongoDatabase database = client.GetDatabase(MongoDatabase);
IMongoCollection<BsonDocument> collection = database.GetCollection<BsonDocument>(collection_name);

var builder = Builders<BsonDocument>.Filter;
var filter = builder.Eq("_id", ObjectId.Parse(obj_id));
List<BsonDocument> documents = collection.Find(filter).ToList();
return documents;

Select một item từ Db Mongo
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
15-8-2019 15:34:53
Update item thì phức tạp hơn chút

async Task callUpdate(IMongoCollection<BsonDocument> collection, staffsInfo inf)
{
var result = await collection.FindOneAndUpdateAsync(
Builders<BsonDocument>.Filter.Eq("_id", ObjectId.Parse(inf.id)),
Builders<BsonDocument>.Update.Set("createdAt", inf.createdAt)
.Set("displayName", inf.displayName)
.Set("phone", inf.phone)
.Set("profilePicture", inf.profilePicture)
.Set("staffId", inf.staffId)
);

if (result != null)
{
// The document already existed and was updated.
string msg = "doc exist";
}
else
{
// The document did not exist and was inserted.
string str = "doc not exist it insert";
}
}

Rồi gọi từ giao diện


var collection = mongo.collection("staffs");
callUpdate(collection, inf).Wait();
Response.Redirect("/?ctl=stafflist");
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
16-8-2019 17:5:27
Tìm kiếm với Regx và không phân biệt hoa thường (case sensitive)

db.stuff.find( { foo: /^bar$/i } );

trong đó /i có nghĩa là không phân biệt hoa thường
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
11-9-2019 10:29:25
private void BulkCopy(DataTable dt)
{
SqlConnection conn = new SqlConnection(DataFactory.ConnString);
conn.Open();
SqlBulkCopy bcp = new SqlBulkCopy(conn);
for (int i = 0; i < dt.Columns.Count; i++)
bcp.ColumnMappings.Add(dt.Columns.ColumnName, dt.Columns.ColumnName);

bcp.DestinationTableName = "stamps";
try
{
bcp.BulkCopyTimeout = 60;
bcp.WriteToServer(dt);
}
catch (Exception ex) { throw ex; }
conn.Close();
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
10-10-2019 11:12:43
Xóa item trong collection của mongo-db

string id = Request.QueryString["id"];
MongoRunner rn = new MongoRunner();
var collection = rn.collection("staffs");
collection.DeleteOne(Builders<BsonDocument>.Filter.Eq("_id", ObjectId.Parse(id)));
Response.Redirect("/?ctl=staffslist");
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
15-10-2019 16:40:31
Sử dụng socket.io trong javascript

=====
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>

tiếp theo kết nối đến socket.io :

var socket = io('http://192.168.40.148:3001');
var count = 0;
socket.on('connect', function (data) {
console.log('connect ', data);

socket.on('gateway_result', function (data) {
console.log('gateway_result ', data);
if (data.code == 2) {
console.log('thanh cong');
$("#success").css("display", "block");
}

});
//socket.emit('gateway_update_firmware', { address: '192.168.40.170', port: 51000, version: 1, device: 1 });

socket.emit('gateway_frequency', { address: '192.168.40.170', port: 51000, t: 9 });
});
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
18-10-2019 15:43:38
https://www.w3schools.com/howto/howto_js_draggable.asp

khá hay cho drag cả một div

<!-- Draggable DIV -->
<div id="mydiv">
<!-- Include a header DIV with the same name as the draggable DIV, followed by "header" -->
<div id="mydivheader">Click here to move</div>
<p>Move</p>
<p>this</p>
<p>DIV</p>
</div>

=======
#mydiv {
position: absolute;
z-index: 9;
background-color: #f1f1f1;
border: 1px solid #d3d3d3;
text-align: center;
}

#mydivheader {
padding: 10px;
cursor: move;
z-index: 10;
background-color: #2196F3;
color: #fff;
}

===============
// Make the DIV element draggable:
dragElement(document.getElementById("mydiv"));

function dragElement(elmnt) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (document.getElementById(elmnt.id + "header")) {
// if present, the header is where you move the DIV from:
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
} else {
// otherwise, move the DIV from anywhere inside the DIV:
elmnt.onmousedown = dragMouseDown;
}

function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}

function elementDrag(e) {
e = e || window.event;
e.preventDefault();
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
// set the element's new position:
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}

function closeDragElement() {
// stop moving when mouse button is released:
document.onmouseup = null;
document.onmousemove = null;
}
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
19-10-2019 11:41:8
Dùng canvas vẽ bản đồ
[code]
<script>
var socket = io('http://192.168.40.148:3001');
socket.on('connect', function (data) {
drawMap('/theme/map2.jpg');

socket.on('position_update', function (data) {
console.log('position_update', data, data.length);
for (i = 0; i < data.length; i++)
drawCircle(data);
});

socket.on('auth', function (data) {
console.log('auth ', data);
});

socket.emit('auth', 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZDRiOWVlMD
AzZmUxMTExMTBiZWEyODIiLCJ1c2VybmFtZSI6Im5hbWRsIiwiZGlzcGxheU5hbWUiOi
JOYW0gTeG6t3QgU-G6r3QiLCJpYXQiOjE1NzEzMDYyMTN9.FvHhN1ZO-EdECWcyZteXGG9UvL5yG-fa1QttDsEUKwo');
socket.emit('box', { 'box': '0,0,1691,1156' });
});

socket.on('disconnect', function (data) {
console.log('disconnect');
});

function drawCircle(dataPosition) {
var canvas = document.getElementById('mycanvas');
var context = canvas.getContext('2d');
context.beginPath();
context.arc(dataPosition.x, dataPosition.y, 10, 0, 2 * Math.PI, false);
context.fillStyle = "rgba(231, 10, 10, 0.5)";
context.fill();
context.lineWidth = 1;
context.strokeStyle = '#ff0000';
context.stroke();
}

function drawMap(imageUrl) {
var canvas = document.getElementById('mycanvas');
var context = canvas.getContext('2d');
var img = new Image;
img.onload = function () { context.drawImage(img, 0, 0); };
img.src = imageUrl;
}
</script>
[/code]
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
30-10-2019 17:3:29
routes = {{ "code" : 200, "message" : "Success", "data" : { "path" : array(), "cost" : 1580 } }}

dung

BsonDocument document = BsonSerializer.Deserialize<BsonDocument>(routes);

dùng BsonDoc để phân tích
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
30-10-2019 17:5:32
JavaScriptSerializer serializer = new JavaScriptSerializer();
var resp = serializer.Deserialize<Dictionary<string, object>>(routes);

var data = (Dictionary<string, object>)resp["data"];
ArrayList path = (ArrayList)data["path"];

for (int i = 0; i < path.Count; i++)

Một cách khác, nhưng phức tạp hơn là dùng JavaScriptSerializer
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
7-11-2019 16:23:44
public static void ConvertDateView(XmlDocument doc, string col_name, string date_format)
{
XmlNodeList nodes = doc.GetElementsByTagName("item");
if (nodes.Count > 0)
{
TimeZone localZone = TimeZone.CurrentTimeZone;
for (int i = 0; i < nodes.Count; i++)
{
XmlNodeList x_date = ((XmlElement)nodes).GetElementsByTagName(col_name);
if (x_date.Count > 0)
{
try
{
XmlElement el = (XmlElement)x_date[0];
string xml_text_date = el.InnerText;
DateTime dateTime = Convert.ToDateTime(xml_text_date);

dateTime = localZone.ToLocalTime(dateTime);
el.InnerText = dateTime.ToString(date_format);
}
catch { }
}
}
}
}

public static string RandomString(int len)
{
Random rnd = new Random();
string mychar = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char[] ch_array = mychar.ToCharArray();
int len_arr = mychar.Length;
string str = "";
do
{
int i = rnd.Next(len_arr);
str += ch_array;
}
while (str.Length < len);
return str;
}
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
12-11-2019 12:31:56
[{ "_id" : ObjectId("5d53715a53190719e80ad08a"), "updatedAt" : NumberLong("1567138684000"), "visible" : true, "name" : "Văn phòng VinSmart Royal City", "address" : "Khu đô thị Royal City Thanh Xuân, Hà Nộidsvdv", "mapImage" : { "name" : "map1_dev.jpg",
"meter_per_pixel" : 0.023158000782132149, "width" : 1691, "height" : 1156 }, "subs" : [ObjectId("5dae727aadcdf9b2475f75c3"), ObjectId("5dae7286adcdf9b2475f761f")],

"__v" : 0, "pid" : null }, { "_id" : ObjectId("5d53715a53190719e80ad08b"), "updatedAt" : NumberLong("1567138684000"), "visible" : true, "name" : "Nhà Máy VinSmart Hòa Lạc",

"address" : "Khu công nghệ cao Hòa Lạc, Thạch Thất, Hà Nội", "mapImage" : { "name" : "map2.png", "width" : 1128, "height" : 940, "meter_per_pixel" : 0.0231578947368421 },
"subs" : [], "__v" : 0 }, { "_id" : ObjectId("5dae7286adcdf9b2475f761f"), "updatedAt" : NumberLong("1567138684000"), "visible" : true, "name" : "Tầng 1",
"address" : "Khu đô thị Royal City Thanh Xuân, Hà Nội", "mapImage" : { "name" : "/images/0bb168e0dac24985858b4688df063d13.jpg", "width" : 1691.0,

"meter_per_pixel" : 0.023158000782132149, "height" : 1156.0 }, "pid" : "5d53715a53190719e80ad08a", "height" : 82862.0, "width" : 2600.0 }, { "_id" : ObjectId("5dca19860599de1770f9e754"), "name" : "Tầng 2", "width" : 100.0,
"height" : 0.0, "updatedAt" : NumberLong("132179994940938645"), "visible" : true, "pid" : "5d53715a53190719e80ad08a", "mapImage" : { "name" : "/images/287badb7cad648698e03d56711abf442.jpg", "width" : 1691.0, "height" : 1156.0 } }]


với string thế này mà gọi

var list = JSON.parse(resp);

sẽ lỗi ở chỗ "ObjectId("5d53715a53190719e80ad08a")", json parse chỉ parse string tức là có dấu "
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
13-11-2019 15:26:36
Mongo update many như sau
=====
use indoor_positioning_system;
db.getCollection("access_points").updateMany(
{
"place" : ObjectId("5dae727aadcdf9b2475f75c3")
},
{ $set:
{
"place" : ObjectId("5dae7286adcdf9b2475f761f")
}
}
);
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 
aspnet

Lập trình không biên giới
608  bài
23-11-2019 9:49:9
var filter = builder.Ne("delete", true);

field not exist or equals.
---
Cây sẽ cho lộc và cây sẽ cho hoa ...
 

Chủ đề gần đây :

Cùng loại :

Tên file Mô tả chi tiết Ngày
NWeb.zip (1) Module đơn giản Newsweb trên Dotnetnuke v10.x.x.x10/18/2025 8:08:11 AM
vspforum.zip (11) Ma nguon vspforum ngay xua4/18/2023 6:38:37 AM
pdfjs.rar (2) pdfjs 2017 : hiển thị tốt trên iphone 11, 12, 13 không lỗi, bản 2012 sẽ lỗi trên iphone6/21/2022 11:52:48 AM
pdfjs2.rar (2) Xem file pdf bằng viewer.hml cua pdfjs (thư viện chuẩn mozilla) 2012. https://mozilla.github.io/pdf.js/getting_started/#download có thể download bản prebuild tại đây6/21/2022 11:52:04 AM
runner.zip (0) using three.js, orbitcontrol to view an object move random on map. Di chuyển 1 đồ vật ngẫu nhiên trên bản đồ, sử dụng với demo nhân viên di chuyển trong văn phòng. Toàn js download về là chạy12/5/2019 5:55:14 PM
gmap.zip (1) google map + marker7/17/2019 2:25:05 PM
vinsmarthomeservice.zip (1) java post json to api, use AsyncTask, event listener7/9/2019 5:00:10 PM
fblogin.zip (0) Login facebook bang javascript SDK7/9/2019 9:16:37 AM
autocomplete-location.zip (2) autocomplete location geo from google place, html + js7/4/2019 4:37:55 PM
WebAPI.zip (8) api for android access db (v1.0.0)7/4/2019 9:14:17 AM