Python db.collection.distinct()的返回值
我在MongoDB中插入了一个集合。我想使用db.coll.distinctkey检索一个特定值,并将其用作更新函数的值。示例Python代码如下所示:Python db.collection.distinct()的返回值,python,mongodb,Python,Mongodb,我在MongoDB中插入了一个集合。我想使用db.coll.distinctkey检索一个特定值,并将其用作更新函数的值。示例Python代码如下所示: post = {key:value} db.filesystem3.insert(post) value1 = "testing" ret = db.filesystem3.distinct(key) db.filesystem3.update({key:ret},{"$set":{key:value1}}) result = db.files
post = {key:value}
db.filesystem3.insert(post)
value1 = "testing"
ret = db.filesystem3.distinct(key)
db.filesystem3.update({key:ret},{"$set":{key:value1}})
result = db.filesystem3.find()
for i in result:
print i
文档未得到更新。我在这里遗漏了什么,或者我们不能使用distinct字段进行更新吗?调用distinct会返回一个列表,因此您需要迭代返回的每个值
ret = db.filesystem3.distinct(key)
for ret_value in ret:
db.filesystem3.update({key:ret_value}, {"$set": {key: value1}})
ret=db.filesystem3.distinctkey行将返回一个数组,因此不能直接传递数组来更新文档 不同算子的行为 Distinct运算符在单个集合中查找指定字段的不同值,并在数组中返回结果 数组字段如果指定字段的值是数组, db.collection.distinct将数组的每个元素视为 单独的值。 您可以像这样更新代码
for(var i=0;i<ret.length;i++){
var val = ret[i];
db.filesystem3.update({key:val},{"$set":{key:value1}});
}
希望它将有助于返回不同值的列表。为什么你认为你需要。与众不同?也许有更好的方法来完成您想要的任务,所以请使用您的问题来显示具有预期结果的示例文档。