标签: mongodb-.net-driver

MongoDB C#查询表达式(如何?)

在每个文档中我都有一些字段(例如"myfield").myfield是int32类型的值.

请告诉我(用微小的代码示例)如何进行查询:

"得到所有myfield> 10和myfield <20"

我正在使用官方C#驱动程序.

非常感谢你!!!

c# expression mongodb mongodb-.net-driver

1
推荐指数
1
解决办法
1万
查看次数

将MongoDB Rest的Guid转换为C#CLR

我在Rest上使用mongodb。每个文档都由一个字段Id(Guid)和Name(字符串)组成

这是我访问网页时显示的内容:

"_id" : { "$binary" : "Oq4RFClrRUOtIp89AQTGPw==",
        "$type" : "03"
"name" : "HelloWorld"
Run Code Online (Sandbox Code Playgroud)

在mongodb中,我的Guid转换为UUID(例如,我的JMongoBrowser),并显示为46eb229f-b493-5630-b0d7-aa00499fafa0。

但是,当我访问其余网页时,它被分为两部分(二进制文件和一种类型)。那么如何将其转换为C#对象呢?

谢谢

c# mongodb mongodb-.net-driver

1
推荐指数
1
解决办法
1407
查看次数

通过_ids数组的MongoDB请求(可能吗?)

例如,我有n个文件:

{ _id : 1 }
{ _id : 2 }
{ _id : 3 }
...
{ _id : n }
Run Code Online (Sandbox Code Playgroud)

根据某种逻辑,我得到了m _ids的数组:[1,30,500,1001,...,i];

是否可以使用_ids数组发出一个请求来检索这些m文档的Cursor ?我不想提出单独的请求,例如:

db.things.findOne({_id:1});

db.things.findOne({_id:30});

db.things.findOne({_id:500});

db.things.findOne({_id:1001});

...

db.things.findOne({_id:i});

如果有可能,那么在JavaScript Shell和官方C#驱动程序上如何做到这一点?

谢谢!!!

javascript mongodb mongodb-.net-driver

1
推荐指数
1
解决办法
703
查看次数

MongoDB查询C#驱动程序

我在C#MongoDB中表达此查询时遇到问题,我希望它返回与MongoVue objectID不相同的所有结果"000000000000000000000000"; 但我无法在我的计划中使用它.

{"ProfilePictureId" : {$ne: new ObjectId ("000000000000000000000000")}}
Run Code Online (Sandbox Code Playgroud)

我正在使用官方C#驱动程序:

var query = new QueryDocument();
foreach (BsonDocument book in col.Find(query))
{
    ...
}
Run Code Online (Sandbox Code Playgroud)

c# mongodb bson mongodb-.net-driver

1
推荐指数
1
解决办法
2789
查看次数

Mongo DB C#驱动程序在映射复杂类时引发异常

我在使用BsonClassMap映射某些类时遇到问题。我有3个这样的课程:

abstract class A {
  public string FirstName { get; set; }
}

abstract class B : A{
  public string LastName { get; set; }
}

class C : B {
  public int Age { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我只希望将类C中可见的属性映射到数据库。

BsonClassMap.RegisterClassMap<C>(map =>
{
  map.MapProperty(c => c.FirstName).SetElementName("fn");
  map.MapProperty(c => c.LastName).SetElementName("ln");
  map.MapProperty(c => c.Age).SetElementName("age");
});
Run Code Online (Sandbox Code Playgroud)

这引发了一个异常,从我设法发现的异常中似乎是因为这些属性不属于C类。我应该如何映射这种结构?

c# serialization mongodb mongodb-.net-driver

1
推荐指数
1
解决办法
2048
查看次数

如何在C#驱动程序中使用BsonSerializer克隆/复制MongoDB的POCO实体

使用官方C#驱动程序制作MongoDB POCO实体的新副本的最佳方法是什么?

我试过这个;

    public T Clone()
    {
        var bsonWriter = new BsonDocumentWriter(new BsonDocument(), BsonDocumentWriterSettings.Defaults);
        BsonSerializer.Serialize(bsonWriter, this);
        var newDoc = bsonWriter.ToBsonDocument(typeof(T));
        var e = BsonSerializer.Deserialize(newDoc , typeof(T));
        return e as T;

    }//Clone()
Run Code Online (Sandbox Code Playgroud)

但我得到的只是一个充满空值的空对象.顺便说一句,POCO对象不会从BsonDocument继承,但它确实很好地序列化,我想要利用它所装饰的所有Bson属性,这就是为什么我不想以其他方式复制它.我想要一个副本,因为数据库驱动程序会这样做.

mongodb bson mongodb-.net-driver

1
推荐指数
1
解决办法
1965
查看次数

MongoDB无法确定表达式错误的序列化信息

我的数据有以下结构

public enum ParamType
{
    Integer=1,
    String=2,
    Boolean=3,
    Double=4
}

public class Gateway
{
    public int _id { get; set; }
    public string SerialNumber { get; set; }
    public List<Device> Devices { get; set; }
}

public class Device
{        
    public string DeviceName { get; set; }
    public List<Parameter> Parameters { get; set; }
}

public class Parameter
{
    public string ParamName { get; set; }
    public ParamType ParamType { get; set; }
    public string Value { get; set; } …
Run Code Online (Sandbox Code Playgroud)

.net c# mongodb mongodb-.net-driver

1
推荐指数
1
解决办法
1万
查看次数

使用存储在数据库中的字符串编码问题

我有一个编码问题.我的MongoDB中有错误编码的文本.我的数据库中文本的源文件以ISO-8859-1编码.现在,在我的数据库中查看它时,一些字符被打破(变成' ').

目前,在从db检索文本时,我尝试了以下代码.

var t = Collection.FindOne(Query.EQ("id", "2014121500892"));
string message = t["b203"].AsString;
Console.WriteLine(ChangeEncoding(message));
Run Code Online (Sandbox Code Playgroud)

第一次尝试:

static string ChangeEncoding(string message)
{

    System.Text.Encoding srcEnc = System.Text.Encoding.GetEncoding("ISO-8859-1");
    System.Text.Encoding destEnc = System.Text.Encoding.GetEncoding("UTF-8");
    byte[] bData = srcEnc.GetBytes(message);
    byte[] bResult = System.Text.Encoding.Convert(srcEnc, destEnc, bData);
    return destEnc.GetString(bResult);
}
Run Code Online (Sandbox Code Playgroud)

第二次尝试:

static string ChangeEncoding(string message)
{
    File.WriteAllText("text.txt", message, Encoding.GetEncoding("ISO-8859-1"));
    return File.ReadAllText("text.txt");
}
Run Code Online (Sandbox Code Playgroud)

db中的示例文本:

Box aus Pappef rA8-Lernk rtchen

期望的结果:

我希望能够在控制台中将其打印为:

Box ausPappefürA8-Lernkärtchen

c# unicode encoding mongodb-.net-driver

1
推荐指数
1
解决办法
1385
查看次数

MongoDb C#驱动程序检索增量更新的值

我使用以下inc语句进行更新以增加字段的值

 var update = Updates.Inc(x => x.Version, 1);
 await collection.FindAndUpdateOneAsync(myQuery,update);
Run Code Online (Sandbox Code Playgroud)

我想从版本中检索新的(或旧的)值.有内置的方法吗?

由于交易问题,我不想进行新的单独查询.

.net c# mongodb mongodb-.net-driver

1
推荐指数
2
解决办法
1922
查看次数

C#MongoDB-如何向多个嵌套数组元素添加和删除项目?

我在MongoDB中有一个看起来像这样的文档:

{
    "Id":"123",
    "Product": "test",
    "Tags":[
        {
            "Name": "name",
            "Categories": [
                {
                    //item
                },
                {
                    //item
                }
            ]
        },
        {
            "Name": "name",
            "Categories": [
                {
                    //item
                },
                {
                    //item
                }
            ]
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

现在,我需要添加一个新的Item,它需要被添加到所有的类别Tags的该元素Product由它Id。例如,当我插入Item 3文档时,应如下所示:

{
    "Id":"123",
    "Product": "test",
    "Tags":[
        {
            "Name": "name",
            "Categories": [
                {
                    //item 1
                },
                {
                    //item 2
                },
                {
                    //item 3
                }
            ]
        },
        {
            "Name": "name",
            "Categories": [
                {
                    //item 1
                },
                { …
Run Code Online (Sandbox Code Playgroud)

c# mongodb mongodb-.net-driver

1
推荐指数
1
解决办法
3012
查看次数