2017-04-17 1 views
1

내 C# 콘솔 응용 프로그램 프로젝트에서 MongoDB.Driver.2.4.3을 MongoDB 3.2.10에 연결하여 사용하고 있습니다. "(ISODate :"FIRSTNAME "ObjectId가 ("58f034bf5c57ef10bc4f8d3d ") :"Christano ","생년월일 "을C# 쿼리 mongodb 문서 필드 값 사용

{"_id "

나는 아래의 코드를 콘솔로하는 I 출력 컬렉션의 문서가 ""} ","country ":"Brazil "} {"_id ": ObjectId ("58f0c7bb5c57ef10bc506216 "),"firstname ":"Pele ","birthdate ": ISODate ("2007- ""} ","국가 ":"브라질 "} {"_id ": ObjectId ("58f0ca995c57ef10bc506763 "),"firstname ":"앤서니 ","생년월일 ": ISODate ("2010-04-1202 : 32 : 31Z " 14T02 : 32 : 31Z "),"country ":"Italy "}

개별 필드 값을 콘솔에 쓰려면 어떻게해야합니까? 상점을 만들고 그 값을 개별적으로 조작합니까?

var players = DB.GetCollection<Player>("players"); 

그럼 그냥 LINQ를 적용 당신은 그 모든 선수를 필터링 할 수 있습니다 :

using MongoDB.Bson; 
using MongoDB.Driver; 

var playerfirstname; 
var playerbirthdate; 
var playercountry; 

var client = new MongoClient("mongodb://localhost:27017"); 
var DB = client.GetDatabase("football"); 
var collection = DB.GetCollection<BsonDocument>("players"); 

var filter = Builders<BsonDocument>.Filter.Eq("country", "Brazil"); 
var cursor = collection.Find(filter).ToCursor(); 
foreach (var document in cursor.ToEnumerable()) 
{ 
    Console.WriteLine(document); 
} 

답변

1

당신은 아래에 입력 변경 한 후 컬렉션을 다음

internal class Player 
{ 
    public ObjectId Id { get; set; } 
    public string firstname { get; set; } 
    public DateTime birthdate { get; set; } 
    public string country { get; set; } 
} 

같은 클래스를 정의한다 국가는 브라질이 아니며 아래 각 플레이어의 속성에 액세스합니다.

var playersInBrazil = players.AsQueryable() 
          .Where(player => player.country == "Brazil"); 
foreach(var playerInBrazil in playersInBrazil) 
{ 
    Console.WriteLine(playerInBrazil.firstname); 
} 
+0

오류가 발생했습니다. \t CS1061 \t 'IMongoCollection '에는 'Where'및 확장 메서드가없는 'Where'에 대한 정의가 포함되어 있지 않습니다. 'IMongoCollection '유형의 첫 번째 인수를 수락 할 수 있습니다. 발견 (당신은 using 지시문 또는 어셈블리 참조가?) – ikask

+0

심각도 \t 코드 \t 설명 \t 프로젝트 \t 파일 \t 라인 \t 억제 상태 오류 \t CS1579 유형의 변수를 조작 할 수 없습니다 \t foreach 문 '?' 때문에 '?' 'GetEnumerator'에 대한 공용 정의가 포함되어 있지 않습니다. \t ConsoleApp1 – ikask

+0

@ikask 제 업데이트를 확인하고 알려주십시오. 감사합니다 – Christos