バックエンドではgo langを使い、データベースにはmongoDBを使います。私は埋め込み配列に最後のドキュメントを挿入しようとしているので、インデックスを知らずに最後の配列インデックスのドキュメントを取得することができます。今、私は従業員のすべてのドキュメントを取得してから最後のインデックスを見つけます。私はここmongodbの配列の最後のインデックスを見つける
type (
Employee struct {
Name string
Password string
EmpId string
EmailAddress string
Position string
Gender string
Nationality string
Department string
MaritalStatus string
Approvedby string
JoinDate time.Time
ConfirmationDate time.Time
EndDate time.Time
Leave []*LeaveInfo
}
LeaveInfo struct {
Total float64
Id int
Days float64
From time.Time
To time.Time
Status string
Certificate []*CertificateInfo
}
CertificateInfo struct {
FileName string
FileType string
FileSize int
}
は、私は自分のアプリケーションに
My code is follows
employee := Employee{}
err = c.Find(bson.M{
"empid": "1234"
}).One(&result)
if err != nil {
log.Fatal(err)
}
name:=result.Name
lastindex:= result.LeaveInfo[len(result.LeaveInfo)-1].Id
を行う方法である次のように私の構造体は、配列 の最後のインデックスを見つける前に、従業員の記録1000を取得してRAMに格納する必要があるとして、私のRAMあなたは私が全体の従業員データをretriveし、そこ最後document.Is任意のBETTのIDを見つける見ることができるように
えーthis.Appreciate任意のhelp.Please ...おかげ..
新しく追加されたコード
This code is based on your example
var result bson.M
query := bson.M{"empid": "1234"} // gets the employee you are interested in
match := bson.M{"$match": query} // Set up the match part of the pipeline
unwind := bson.M{"$unwind": "$leave"} // sets up the leave field to be unwound
pipeline := []bson.M{match, unwind,{
"$project":bson.M{
"ID":bson.M{
"$slice": []interface{}{"$leave.id", -1},
}
}
iter := postCollection.Pipe(pipeline).Iter()
for iter.Next(&result) {
fmt.Printf("%+v\n", result)
}
iter.Close()
を行う方法このコードは私に同じ文書の多くを与える542件の文書のような.But、これらすべてのドキュメントが同じです...
ありがとうuser1638680 .....少なくともindex.Thisを見つけることで私たちを助けにMongoDBであり、他の属性は、間違いなく私のコードよりも優れているが、私は休暇配列の1000件のレコードが内部で取得することにしたいいけませんleave配列の2つの属性だけを取得しているにもかかわらず、リクエストごとにラム。おかげさま...もう一度あなたの助けを感謝します。 –
Mongo 3.2では、$ sliceをMongoシェルの負の数値で使用できます。たとえば、 – dgm
おっと、私は途中で戻ってきました。 Mongoシェルを使用すると、db.c.find({"empid": "1234"}、{"leave":{$ slice:-1}})のようなクエリを実行し、配列の最後のエントリを取得できます。私はすばやく見ましたが、Goから$ sliceを使用した例は見つかりませんでした。 – dgm