我试图将数据从 SQL Server 迁移到 MongoDB,但在最后阶段将数据导入 MongoDB 时遇到类型错误。
mongoImp = dbo.insert_many(jArray)
File "/home/lrsa/.local/lib/python2.7/site-packages/pymongo/collection.py", line 710, in insert_many
blk.ops = [doc for doc in gen()]
File "/home/lrsa/.local/lib/python2.7/site-packages/pymongo/collection.py", line 702, in gen
common.validate_is_document_type("document", document)
File "/home/lrsa/.local/lib/python2.7/site-packages/pymongo/common.py", line 407, in validate_is_document_type
"collections.MutableMapping" % (option,))
TypeError: document must be an instance of dict, bson.son.SON, bson.raw_bson.RawBSONDocument, or a type that inherits from collections.MutableMapping
Run Code Online (Sandbox Code Playgroud)
我还检查了type(jArray)哪个是str. 也尝试将数据类型转换为list,但未能成功。
我的代码:
import pyodbc
import json
import collections
import pymongo
from bson import json_util
odbcArray = …Run Code Online (Sandbox Code Playgroud) 有人可以帮助在 mongoDB 中实现 IF/ELSE 吗?我在 SQL Server 中使用以下代码。
DECLARE @p =1
IF @p =1
PRINT @p
ELSE PRINT "NO"
Run Code Online (Sandbox Code Playgroud)
我在 MongoDB 中尝试了以下代码,但没有成功。
var p=1
{ $cond: { if: p=1, then: print(p), else: print("NO") } }
var p=1
{ $cond: { if: p=1, print(p), print("NO") } }
Run Code Online (Sandbox Code Playgroud) 我生成了一些Fernet密钥,并以str格式存储以供参考。现在,我需要将这些Fernet密钥以str格式编码为32个url安全的base64编码字节,以解密我的数据。
from cryptography.fernet import Fernet as frt
keys=set()
keybin='keys'
keybin=open(keybin,'w')
for i in range(r.randint(5,14)):
key=frt.generate_key()
keys.add(key.decode())
for k in keys:
keybin.write(str(k))
keybin.write('\n')
Run Code Online (Sandbox Code Playgroud)
我正在使用下面的代码访问文件并解密 s
key=linecache.getline(cfile,x).encode()
key=base64.b64encode(key)
print(key)
f=frt(key)
token =f.decrypt(s.encode())
Run Code Online (Sandbox Code Playgroud)
但是给我以下错误:
"Fernet key must be 32 url-safe base64-encoded bytes."
ValueError: Fernet key must be 32 url-safe base64-encoded bytes.
Run Code Online (Sandbox Code Playgroud) 我正在将 SQL 查询重写为 mongoDB。有人可以帮助我们如何使用多个连接键和条件连接两个集合,如下面的 SQL 查询所示。
SELECT S.* FROM LeftTable S
LEFT JOIN RightTable R ON S.ID =R.ID AND S.MID =R.MID WHERE R.TIM >0 AND S.MOB IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
我有下面的代码,它使用单连接键条件。如果有人可以帮助使用多个连接键和 where 子句来完成查询,我将很高兴。
db.dim.aggregate([{$lookup:{from:"dimFactsVer11",localField:"Sub", foreignField:"Type", as:"EmbedUp"}}])
Run Code Online (Sandbox Code Playgroud)