我希望你能帮助我解决我的这个问题。如果我没有正确表达我想要的内容,请原谅我。
我有一个包含对象的数组的Mongodb集合,我需要更改其中一个对象变量的值。我在Mongodb中找到了正确的答案但是在Meteor中使用它时会抱怨只能通过_id
进行更新
我的收藏是这样的
{
_id: 'akjsdakudsh',
subs: [
{
name: 'name1',
seen: false,
},
{
name: 'name2',
seen: false,
}
]
},
{
_id: 'ako0iqwjeqasdf',
subs: [
{
name: 'name1',
seen: false,
},
{
name: 'Fantastic',
seen: true,
}
]
}
因此,如果我想将seen
更改为true
,我将在Mongodb中将name2
更改为db.coll.update(
{
_id : 'akjsdakudsh',
'subs.name': 'name2'
},
{
$set: { 'subs.$.seen': true }
}
);
403
这就像一个魅力。尝试在Meteor中执行此操作时会出现问题,因为它会引发错误Not permitted. Untrusted code may only update documents by ID
_id
。
我明白问题是什么,但我没有from concurrent.futures._base import as_completed
from concurrent.futures.thread import ThreadPoolExecutor
WORK_FINISHED = False
def piBoard():
while not WORK_FINISHED:
# Do some stuff
# Drink some coffee
def myFunction():
time.sleep(5)
global WORK_FINISHED
WORK_FINISHED = True #update gobal status flag
return something
if __name__ == '__main__':
futures = []
MAX_WORKERS = 5 #max number of threads you want to create
with ThreadPoolExecutor(MAX_WORKERS) as executor:
executor.submit(piBoard)
# submit your function to worker thread
futures.append(executor.submit(myFunction))
# if you need to get return value from `myFunction`
for fut in as_completed(futures):
res = fut.result()
数组的元素,而且我不需要其它任何东西。
关于我做错了什么或者解决我的问题的一些整洁的解决方法的任何想法?任何帮助将不胜感激,谢谢。