C#이 있는 MongoDB에서 지정된 필드만 가져옵니다.
처음으로 MongoDB를 사용합니다.
다음 예를 읽었습니다.
나이=33db.users.findage:33, {a:1,b:1} 사용자 중에서 a,b를 선택합니다.
하지만 저는 그것을 C#로 번역할 수 없습니다.누가 나를 도와줄 수 있나요?
새로운 C# 드라이버(2.2)를 사용하여 아래의 질문을 번역했습니다.
var mongoClient = new MongoClient(""mongodb://127.0.0.1:27017"");
var database = mongoClient.GetDatabase("databaseName");
IMongoCollection<Users> _collection = database.GetCollection<Users>("Users");
var condition = Builders<Users>.Filter.Eq(p => p.age, 33);
var fields = Builders<Users>.Projection.Include(p => p.a).Include(p => p.b);
var results= _collection.Find(condition).Project<Users>(fields).ToList().AsQueryable();
를 사용하여 수행할 수 있습니다.SetFields
의 방법MongoCursor
클래스, 전체 예제 아래:
var server = MongoServer.Create(connectionString);
var db = _server.GetDatabase("dbName");
var users = db.GetCollection("users");
var cursor = users.FindAs<DocType>(Query.EQ("age", 33));
cursor.SetFields(Fields.Include("a", "b"));
var items = cursor.ToList();
익명 클래스를 사용할 수 있습니다.
public class User
{
public int age;
public string a;
public string b;
}
var collection = db.GetCollection<User>("Users");
var results = collection.Find(Builders<User>.Filter.Eq(user => user.age, 33))
.Project(u => new { u.a, u.b }).ToList();
//create user class
//(not sure how your class looks like)
public class User
{
public int age;
public string a;
public string b;
}
//then you can use LINQ easily
var server = MongoServer.Create(connectionString);
var db = server.GetDatabase("dbName");
var usersCollection = db.GetCollection<User>("users");
var filteredCollection = usersCollection.AsQueryable().Where(x=> x.age < 33).Where(x=> x.a != null).Contains(x=> x.b != null);
언급URL : https://stackoverflow.com/questions/7704290/get-only-a-specified-field-in-mongodb-with-c-sharp
'programing' 카테고리의 다른 글
mongodb 업데이트에서 변수 사용 (0) | 2023.06.28 |
---|---|
null 가능한 열에 대한 인덱스 (0) | 2023.06.28 |
사용되지 않는 타이핑 패키지를 수동으로 업데이트하는 방법 (0) | 2023.06.28 |
SQL 쿼리의 SELECT 문에서 WITH TIES 키워드는 무엇을 사용합니까? (0) | 2023.06.28 |
Mongo 클라이언트가 밑줄이 앞에 붙은 컬렉션에 액세스할 수 없음 (0) | 2023.06.28 |