最近我将 Mongoose 从 4.x 更新到 5.x,代码在 insertMany 返回值处被破坏。
更新之前,insertedIds是返回对象中的键,值是一个数组,其中包含所有插入的ObjectIds,例如
[ObjectId1, ObjectId2].
Run Code Online (Sandbox Code Playgroud)
更新后,insertedIds 的值是一个如下所示的对象:
{
1: ObjectId1,
2: ObjectId2
}
Run Code Online (Sandbox Code Playgroud)
我必须使用 Object.values 将其转换为数组。我在Mongo shell中尝试了insertMany方法,insertedIds是Array。
我在升级过程中错过了什么吗?
constructor(props) {
super(props);
this.state = ({
childData: [],
test: []
});
}
componentDidMount() {
let userId = firebase.auth().currentUser.uid;
firebase.database().ref('poolog/' + userId).on('value', (snapshot) => {
let test = [];
snapshot.forEach((childSnapshot) => {
let childKey = childSnapshot.key;
test.push(snapshot.val());
});
this.setState({childData: test});
// console.log(this.state.childData);
});
Run Code Online (Sandbox Code Playgroud)
我在React的返回方法中使用了这个函数。
{this.state.childData.map((item, key) =>
<View key={key}>
{console.log(Object.values(item) + 'test')}
<Text>{Object.keys(item)}</Text>
{Object.values(item).map((value, index) =>
<View></View>
)}
</View>
)}
Run Code Online (Sandbox Code Playgroud)
我有一个问题,我只想要一个特定的值,Object.values(item)给出所有值,当我使用Object.values(item[key])或Object.values(item[0])我得到:
TypeError: undefined is not an object (evaluating 'Object.keys(item[0]') 或 TypeError: undefined is not an …
我需要显示来自 S3 的私人文件,所以我正在生成 S3 签名 URL,但是当我在浏览器中打开 url 时,我得到了这个,
<Error>
<Code>AccessDenied</Code>
<Message>Request is not yet valid</Message>
<X-Amz-Date>1559667828000</X-Amz-Date>
<Expires>2019-06-04T17:08:46Z</Expires>
<ServerTime>2019-06-04T04:38:30Z</ServerTime>
<RequestId>BCB52dF0973D5E20</RequestId>
<HostId>********************************************</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)
我不明白是什么问题,任何人都可以解释这个错误。
生成签名url的代码
GetPreSignedUrlRequest request1 = new GetPreSignedUrlRequest
{
BucketName = bucketName,
Key = "key",
Expires = DateTime.Now.AddMinutes(5)
};
urlString = client.GetPreSignedURL(request1);
Run Code Online (Sandbox Code Playgroud)