私はMongoDBにコレクションを持ち、VBネットでMongoDBドライバを使用しています。条件に応じていくつかの文書を更新したい。 これはLINQを使用したいのですが、選択によってエラーが発生し、修正方法がわかりません。VBネットとMongo:LINQでwhere句を使用するとエラーが発生する "Unsupported where clause:(Boolean)Operators.CompareObjectLess"
は、ここでは、コードです:
Dim update_for As UpdateBuilder
Dim query_for As IMongoQuery
Dim coll_for = db.GetCollection(Of MyClass)("collection_1")
Dim queryMun = (From a In coll_for _
Where (a.field_1 < 10000) _
Select a)
For Each emp In queryMun
query_for = Query.EQ("_id", emp.Id)
update_for = Update.Set("field_1", BsonValue.Create("0" + emp.field_1))
coll.Update(query_for, update_for, opts)
Next
それはそれぞれの文のデを実行し、それは例外が発生します:サポートされていないwhere句:(ブール)Operators.CompareObjectLess(a.field_1、10000、真)。
私は間違っていますか?
ありがとうございました。
はあなたに@Oscarをありがとうございます。そして、私はどのようにしてより少ない比較をすることができますか?出来ますか? – Aliena
@Aliena私はモンゴルの専門家ではありません。ドキュメントを読むべきです。しかし、 "<"演算子は別の構文でサポートされています。https://docs.mongodb.com/getting-started/csharp/query/#specify-conditions-with-operators – Oscar
@Oscarありがとうございますが、これはMongoDBのために直接。私はVBネットでそれを実行する必要があります。私がMongoDBのウェブサイトで見つけたものはC#であり、<演算子を使用しています。私はQuery.EQ、Query.LTなどで単純なクエリを実行できますが、クエリ結果を繰り返し処理し、属性に値の前に "0"を追加してデータを更新する必要があります。これは固定値の更新ではなく、すでに属性に値が設定されています。 – Aliena