using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MongoDB.Bson;
using MongoDB.Driver;
using MongoDB.Driver.Core;
using MongoDB.Driver.Builders;
namespace ConsoleApplication1
{
class container
{
public string _Id { get; set; }
public string Node { get; set; }
public int SignalSTR { get; set; }
public float Battery { get; set; }
public float CEL { get; set; }
public float WT { get; set; }
public string OnlineSTAT { get; set; }
public string FirmVER { get; set; }
public Int64 Timestamp { get; set; }
}
class Program
{
static void Main(string[] args)
{
CallMain(args).Wait();
Console.ReadLine();
}
static async Task CallMain(string[] args)
{
var connectionString = "mongodb://localhost:27017";
var client = new MongoClient(connectionString);
//var server = client.GetServer();
var database = client.GetDatabase("test");
//var collection = database.GetCollection<Entity>("entities");
var collection = database.GetCollection<BsonDocument>("container");
var builder = Builders<BsonDocument>.Filter;
var filt = builder.Eq("Node", "001_Iron_Nail") & builder.Eq("WT", "4.3");
/* Method 1
using (var cursor = await collection.Find(new BsonDocument()).ToCursorAsync())
{
while (await cursor.MoveNextAsync())
{
foreach (var doc in cursor.Current)
{
Console.WriteLine(doc);
}
}
} */
// Method 2
//var list = await collection.Find(filt).ToListAsync();
var list = await collection.Find(filt).ToListAsync();
foreach (var dox in list)
{
Console.WriteLine(dox);
}
// Method 3
// await collection.Find(new BsonDocument()).ForEachAsync(X => Console.WriteLine(X));
}
}
}
위의 코드는 일부 '조건'을 필터링하여 '테스트'데이터베이스에서 '컨테이너'라는 컬렉션의 모든 데이터를 표시 할 수 있습니다. 내가 선택한 밸류의 일부를 프린트하기 위해 어떻게해야 하는지를 묻고 싶습니다. 예를 들면.데이터와 쇼를 하나만 선택하려면 어떻게해야합니까?
Battery 3.5
Battery 3.6
Battery 3.7
다음과 같이하십시오 :'collection.Find (filt) .Select (x => new {Battery = x.Battery})' –
게시물을 파손하지 마십시오. – Glorfindel