我将如何构建对 mongodB 的查询以创建“存储过程”或请求选择标记为活动的 id,然后立即删除该字段或将其标记为不活动;哪个性能更好。这是集合结构:
db = server.GetDatabase("test")
siteCollection = db("test")
collection = db.GetCollection(Of BsonDocument)("siteids")
Dim book As BsonDocument = New BsonDocument() _
.Add("siteid", BsonValue.Create(BsonType.String)) _
.Add("active", BsonValue.Create(BsonType.String))
collection.Insert(book)
我找到了 java 版本,但不确定这是否可行以及 .net 语法是什么
db.things.find( { x : 4 } , { j : 1 } )
这显然会找到 x = 4 的记录,但只返回 j = 1 的记录,所以我想要一个 active = 'N' 的 siteid
谢谢; 到目前为止,这是我想出的:
' Dim squery = Query.EQ("active", "Y")
Dim squery = Query.EQ("active", "Y")
Dim ssort = SortBy.Null
Dim uupdate = Update.[Set]("active", "N")
Dim result = collection.FindAndModify(squery, ssort, uupdate)
' Dim dresult = collection.FindAs(Of BsonDocument)(squery)
Dim newSiteId As String = dresult.Count
如您所见,第一行已被注释掉,我认为将实现一个简单的选择,但结果返回 null。然后用倒数第二个语句注释掉那个太返回值Null。