Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python db.collection.distinct()的返回值_Python_Mongodb - Fatal编程技术网

Python db.collection.distinct()的返回值

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

我在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.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}});
}
希望它将有助于

返回不同值的列表。为什么你认为你需要。与众不同?也许有更好的方法来完成您想要的任务,所以请使用您的问题来显示具有预期结果的示例文档。