[BsonIgnoreIfDefault] // cần thiết để thay thế tài liệu
Id ObjectId công khai { get;
public Giới tính Giới tính { get;
chuỗi công khai FirstName {get;
chuỗi công khai Họ {get;
chuỗi công khai Tên người dùng {get;
chuỗi công khai Avatar {get;
chuỗi công khai Email {get;
công khai DateTime DateOfBirth {get;
public AddressCard Địa chỉ {get;
public string Điện thoại {get;
chuỗi công khai Trang web {get;
public CompanyCard Company {get;
công thập phân Lương { get;
public int Chi phí hàng tháng { get;
Danh sách công khaiThể thao yêu thích { get;
chuỗi công khai Nghề nghiệp { get;
public string Street { get;
bộ chuỗi công khai {get;
public string City {get;
public string State {get;
chuỗi công khai ZipCode {get;
công khai AppCardGeo Geo {get;
công đôi Lat {get;
công đôi Lng {get;
Tôi đang cố gắng sử dụng bộ lọc $in mongodb trong một truy vấn. Tôi biết rằng mã hóa cứng chuỗi bộ lọc
var collection = db.GetCollection["users"];2 tìm bản ghi như tôi muốn, tuy nhiên tôi không thể có chức năng tương tự khi sử dụng
var collection = db.GetCollection["users"];3
Trong repo mongo của tôi, tôi có một GetAsync nhận vào
var collection = db.GetCollection["users"];4 và thực hiện như sau
return await Context
.Collection[]
.Find[
//"{\"name\":{$in:[/^First/]}}"]
Builders.Filter.In[x => name, ToRegex[name]]]
.Sort[SortDefinition]
.Page[offset, limit]
.ToListAsync[]
.ToAggregate[Mapper];
Hàm
var collection = db.GetCollection["users"];5 chỉ chuyển đổi một chuỗi như
var collection = db.GetCollection["users"];6 thành một chuỗi[] như
var collection = db.GetCollection["users"];7 để bộ lọc sử dụng
Vấn đề ở đây là điều này trả về một mảng trống cho các kết quả thay vì khớp chính xác với mục có
var collection = db.GetCollection["users"];8
Tôi không chắc liệu đây có phải là cách chính xác để đạt được chức năng $in trong C# hay tôi chỉ đang làm điều gì đó sai ở đây
Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?
Kể từ khi phát hành MongoDB 3. Trình điều khiển 4 và C# v2. 4, cheatsheet gốc của Derek đã lỗi thời. Ngoài ra, nó còn một số thiếu sót như kết nối với MongoDB, tạo chỉ mục, v.v. Phiên bản cập nhật này hoạt động tốt với C# Driver v2. 4. 7 và MongoDB v3. 4
Cài đặt
Xác định mô hình tài liệu
Ghi chú. Các mô hình và bộ sưu tập đã xác định sẽ được sử dụng trong toàn bộ trang phục
[BsonIgnoreExtraElements] public class User { [BsonId] public int Id { get; set } // It's better to use ObjectId, we used int for simplicity public int Age { get; set; } public string Name { get; set; } public Address Address { get; set; } public List AliasNames { get; set; } public List Accounts { get; set; } DateTime CreatedOn { get; set; } DateTime ModifiedOn {get; set; } }
Kết nối với cơ sở dữ liệu
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];
Nhận bộ sưu tập
var collection = db.GetCollection["users"];
Chèn
Chèn cơ bản
var user = new User { Name = "Hossein", Email = "hossein@example.com" }; // Basic Insert collection.InsertOne[user]; // With Write Concern collection.WithWriteConcern[WriteConcern.WMajority].InsertOne[user];
Chèn với ID
var user = new User { Id = 10, Name = "Hossein", Email = "hossein@example.com" } collection.InsertOne[user];
Chèn lồng nhau
var user = new User { Name = "Hossein", Email = "hossein@example.com", Address = new Address { City = "Portland", State = "OR", Zip = "97232" } } collection.InsertOne[user];
Chèn hàng loạt
var users = new [] { new User { Name = "Danial", Email = "danial@example.com" }, new User { Name = "Bahar", Email = "bahar@example.com" }, new User { Name = "Shadi", Email = "shadi@exmaple.com" } }; collection.InsertMany[users];
bộ lọc
Tìm, cập nhật và xóa tài liệu sử dụng các bộ lọc, có thể được tạo bởi trình tạo định nghĩa bộ lọc
________số 8
Bộ lọc cơ bản
// Empty Filter [matches all] var empty = builder.Empty; // Filter by field var idFilter = builder.Eq[u => u.Id, 10]; // Filter by field with list of desired values var idListFilter = builder.In[u => u.Id, new [] { 10, 14 }];
You can use
var collection = db.GetCollection["users"];7 [],
var collection = db.GetCollection["users"];9 [!=],
var user = new User { Name = "Hossein", Email = "hossein@example.com" }; // Basic Insert collection.InsertOne[user]; // With Write Concern collection.WithWriteConcern[WriteConcern.WMajority].InsertOne[user];0 [=] filters, just like
var user = new User { Name = "Hossein", Email = "hossein@example.com" }; // Basic Insert collection.InsertOne[user]; // With Write Concern collection.WithWriteConcern[WriteConcern.WMajority].InsertOne[user];2 [==].
Tài liệu nhúng/Bộ lọc mảng
[BsonIgnoreExtraElements] public class User { [BsonId] public int Id { get; set } // It's better to use ObjectId, we used int for simplicity public int Age { get; set; } public string Name { get; set; } public Address Address { get; set; } public List AliasNames { get; set; } public List Accounts { get; set; } DateTime CreatedOn { get; set; } DateTime ModifiedOn {get; set; } }6
Có các công cụ sửa đổi AnyXx, trong đó Xx là Gt, Lt,. [giống như các bộ lọc trường đơn]
Bộ lọc thuộc tính trường
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];0
Bộ lọc biểu thức chính quy
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];1
Kết hợp bộ lọc
Bạn có thể kết hợp các bộ lọc với toán tử bitwise [e. g.
var user = new User { Name = "Hossein", Email = "hossein@example.com" }; // Basic Insert collection.InsertOne[user]; // With Write Concern collection.WithWriteConcern[WriteConcern.WMajority].InsertOne[user];3,
var user = new User { Name = "Hossein", Email = "hossein@example.com" }; // Basic Insert collection.InsertOne[user]; // With Write Concern collection.WithWriteConcern[WriteConcern.WMajority].InsertOne[user];4] hoặc sử dụng các phương pháp của nhà xây dựng
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];2
Tìm thấy
Tìm cơ bản
Lệnh tìm sẽ trả về một trình vòng lặp, có thể được sử dụng để truy xuất tài liệu
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];3
Sắp xếp, Bỏ qua, Giới hạn
Chúng tôi sử dụng trình tạo định nghĩa sắp xếp để xác định thứ tự sắp xếp
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];4
chiếu
Chúng tôi sử dụng trình tạo định nghĩa phép chiếu để xác định cách trình bày tài liệu
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];5
Một cách khác để thực hiện các phép chiếu là sử dụng Biểu thức.
var user = new User { Name = "Hossein", Email = "hossein@example.com" }; // Basic Insert collection.InsertOne[user]; // With Write Concern collection.WithWriteConcern[WriteConcern.WMajority].InsertOne[user];5
Cập nhật
Cập nhật, cần định nghĩa bộ lọc để tìm tài liệu và định nghĩa cập nhật để xác định trường nào và cách thay đổi
Cập nhật có thể ảnh hưởng đến một hoặc nhiều tài liệu
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];6
Cập nhật định nghĩa
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];7
Cập nhật cơ bản
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];8
Có thể sử dụng Mul[tiply], BitwiseAnd, BitwiseOr và BitwiseXor giống như toán tử Set
Nhỏ nhất lớn nhất
Toán tử tối thiểu và tối đa sẽ sửa đổi các trường theo giá trị tối thiểu/tối đa. Vì vậy, họ sẽ chỉ cập nhật trường nếu giá trị của nó tương ứng lớn hơn/nhỏ hơn giá trị được cung cấp
// Default connection, localhost:27017 var db = MongoClient[]; // With Connection String var db = MongoClient["//localhost:27017"]; // With MongoUrl Builder var url = MongoUrl.Create["//localhost:27017"]; var db = MongoClient[url];9
Đổi tên trường
var collection = db.GetCollection["users"];0
Cập nhật trường mảng
var collection = db.GetCollection["users"];1
AddToSet, xử lý các mảng dưới dạng tập hợp và chỉ thêm các phần tử vào một mảng nếu nó chưa tồn tại
Đặt Trên Chèn
Giá trị được cung cấp chỉ được sử dụng khi chèn. Sau đó, thiết lập upsert cờ và sử dụng SetOnInsert bằng Find Or Create