Lọc MongoDB C#

[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

Làm cách nào để lọc dữ liệu trong MongoDB bằng C#?

Kết nối với cơ sở dữ liệu. // Kết nối mặc định, localhost. 27017 var db = MongoClient[]; . //máy chủ cục bộ. 27017"]; // Với MongoUrl Builder var url = MongoUrl. .
Nhận bộ sưu tập. .
Chèn cơ bản. .
Chèn với ID. .
Chèn lồng nhau. .
Chèn hàng loạt. .
Bộ lọc cơ bản. .
Bộ lọc thuộc tính trường

Làm cách nào để lọc kết quả trong MongoDB?

Lọc MongoDB. Toán tử tập hợp bộ lọc MongoDB . đầu vào. Điều này trỏ đến mảng mà bạn muốn lọc dữ liệu. như. Đây là một tham số tùy chọn đại diện cho tên biến của một phần tử trong mảng đầu vào của bạn.

Làm cách nào để sử dụng $EQ trong MongoDB?

Toán tử đẳng thức [$eq ] được sử dụng để so khớp các tài liệu trong đó giá trị của trường bằng với giá trị đã chỉ định . Nói cách khác, toán tử $eq được sử dụng để xác định điều kiện bình đẳng. Điểm quan trọng. Nếu giá trị đã cho là một tài liệu, thì thứ tự của các trường trong tài liệu là quan trọng.

Làm cách nào để tìm tổng hợp trong MongoDB?

Nếu bạn muốn tổng hợp bằng cách sử dụng id của người dùng, [là ID đối tượng cầy mangut], bạn cần truyền id truy vấn của mình [thuộc loại chuỗi] sang ID đối tượng cầy mangut. Như vậy. const userId = cầy mangut. các loại. .
làm gì ['. all'] viết tắt của ?.
Tôi vừa sao chép mã đó từ câu hỏi. '. .
Làm [. .
Không, tôi không nghĩ vậy. .

Chủ Đề