批量写入中的操作是否保证按照其调用顺序执行?根据文档尚不清楚。是否强制只能是 (#0) -> (#1) -> (#2) 而不是其他方式?
const batch = db.batch();
const nycRef = db.collection('cities').doc('NYC');
batch.set(nycRef, {name: 'New York City'}); // (#0)
const sfRef = db.collection('cities').doc('SF');
batch.update(sfRef, {population: 1000000}); // (#1)
const laRef = db.collection('cities').doc('LA');
batch.delete(laRef); // (#2)
return batch.commit().then(function () {
// ...
});
Run Code Online (Sandbox Code Playgroud) MongoDB聚合框架没有floor功能.它只有简单的算术运算符.那么,如何floor使用它们来组合函数呢?
我使用F#编写了自己的LINQ重新实现(感谢Jon Skeet的灵感).
我用一个技巧来生成空序列:
let empty<'b> =
seq {
for n = 0 to -1 do
yield Unchecked.defaultof<'b>
}
printfn "%A" empty<int> // -> seq []
Run Code Online (Sandbox Code Playgroud)
有没有惯用的方法来做到这一点?
(Seq.empty没用,我只是重新实现它)
我正在寻找一个现有的解决方案来序列化记录来查询字符串,但一无所获.我知道F#的漂亮打印,但我不知道如何手动访问它.
通常我想要这样的东西:
type Person = {first:string; last:string}
type Group = {name:string; size:int}
let person = {first="Mary"; last="Smith"}
let personQueryString = Something.toQueryString person
let group = {name="Full"; size=345}
let groupQueryString = Something.toQueryString group
Run Code Online (Sandbox Code Playgroud)
哪里
personQueryString -> "first=Mary&last=Smith"
groupQueryString -> "name=Full&size=345"
Run Code Online (Sandbox Code Playgroud) 如果具有以下功能:
let test arg func =
func arg
Run Code Online (Sandbox Code Playgroud)
它是使用管道调用的惯用方式,
test 1 <| fun n -> n = 2
Run Code Online (Sandbox Code Playgroud)
而不是用括号来称呼它?
test 1 (fun n -> n = 2)
Run Code Online (Sandbox Code Playgroud)
而且什么时候不应该以这种方式使用管道?