2016-04-02 18 views
1

kullanarak diziyi haiz sorgulamak için:mongodb Böyle bir belgeye sahip C#

{ 
    "_id" : ObjectId("56ff6d54f07a36271465441c"), 
    "Author" : "John", 
    "Content" : "Thera are alot of databases", 
    "CreatedAtUtc" : ISODate("2016-04-02T06:57:24.542Z"), 
    "Tags" : [ 
     "elasticSearch", 
     "MongoDb", 
     "C#" 
    ], 
    "Title" : "Best DB" 
} 

Ben etiketi olan tüm belgeleri bulmak ister: "mongodb"

Denedim:

var filter = Builders<Post>.Filter.In("Tags", "MongoDb"); 
var posts = collection.Find(filter).ToList(); 

Gönderi nerede bir C# sınıfı

Ancak hiçbir belge almıyorum. Herhangi bir fikir? Tags dizisinde "MongoDB" bir eşitlik maç var belgeler için sorgularken

cevap

1

, sadece sorgu belgesini { "Tags": "MongoDb" }:

Mongo Shell

db.collection.find({ "Tags": "MongoDb" }) 

C#

kullanmak

af uygulamak için Eq yöntemini kullanın. sadece, aynı zamanda listedeki herhangi bir öğeye maç değil, `herhangi eşleşmiyor: Bu aslında` {[ "MongoDB"] "Etiketler"} olarak çözümlenir

var filter = Builders<Post>.Filter.Eq("Tags", "MongoDb"); 
var posts = collection.Find(filter).ToList(); 
+0

: Bir eşitlik koşulu belirten ilter belge "Soley" olmayan "liste" "MongoDB" özelliğini içerir. Cevabı gerçekten bildiğini ve kopyalayacağını düşündüğün bir yazı bulduğunu düşünmüyorum. –

+1

Teşekkürler chridam, gerçekten çok basit !. – Khorshid

İlgili konular