Skip to content

Instantly share code, notes, and snippets.

@zgramana
Last active August 29, 2015 14:06
Show Gist options
  • Save zgramana/d2a93591608de3dbee4d to your computer and use it in GitHub Desktop.
Save zgramana/d2a93591608de3dbee4d to your computer and use it in GitHub Desktop.
Query Firstname / Lastname for names starting with G
public void PutNPeople(Database db, int n)
{
var lastNames = new[] { "Gramana", "Johnson", "Hunter", "Carter" };
var firstNames = new[] { "Zack", "Bryan", "Greg", "Wayne" };
for (int i = 0; i < n; i++)
{
var doc = new Dictionary<string, object>
{
{ "firstName", firstNames[i % 4] },
{ "lastName", lastNames[i % 4] },
{ "someRandomInt", new Random().Next() }
};
var document = db.CreateDocument();
document.PutProperties(doc);
}
// Include an example of hits on first & last names.
db.CreateDocument().PutProperties(
new Dictionary<string, object>
{
{ "firstName", "Gary" },
{ "lastName", "Gonzalez" },
{ "someRandomInt", new Random().Next() }
}
);
}
[Test]
public void QueryPeopleStartingWithG()
{
var db = Manager.SharedInstance.GetDatabase("foo");
PutNPeople(db, 100);
var view = db.GetView("g-people");
view.SetMap((doc, emit)=>
{
object lastName;
if (doc.TryGetValue("lastName", out lastName))
{
emit(lastName, "lastName");
}
object firstName;
if (doc.TryGetValue("firstName", out firstName))
{
emit(firstName, "firstName");
}
}, "1");
var query = new Query(db, view)
{
StartKey = "G",
EndKey = "GZ"
};
var results = query
.RunAsync()
.Result
.GroupBy(
row =>
row.DocumentId,
row =>
String.Format("{0} = {1}", row.Value, row.Key),
(key, vals) =>
String.Format("{0}: {1}", key, String.Join(", ", vals))
);
foreach(var result in results)
{
Console.WriteLine(result);
}
}
95402d42-b02f-472f-abb7-51cb4df0069e: firstName = Gary, lastName = Gonzalez
5d98724b-2d53-487f-a907-801c5af822a2: lastName = Gramana
9aa2442f-6df5-4299-a46b-63b543760e54: lastName = Gramana
403f428a-e728-4041-a067-ce2d6072d2cf: lastName = Gramana
a901e7b3-52e8-453e-9fb6-4624897d57e1: lastName = Gramana
bd210d5c-47b5-4447-944a-604533c4114e: lastName = Gramana
aec7fdc4-cc16-4d96-a726-0a14a15c03e2: lastName = Gramana
4684a3af-2911-4bab-b67a-91ad98554f83: lastName = Gramana
aeda9487-bfd5-46fb-8e47-8c7290be3dfe: lastName = Gramana
c1033617-f8cc-4a38-a1bc-301e0f906a7a: lastName = Gramana
ccc406ab-6a58-4f7e-b976-fad527bd2d42: lastName = Gramana
188531f5-fd1f-44d7-b5aa-7f86db37d636: lastName = Gramana
5f3f0ff1-4c33-48c8-b6de-7f2594dd4f4a: lastName = Gramana
9e87e8d9-4f08-499e-b2ed-a26733a95e8b: lastName = Gramana
b3115ab3-13fb-4add-b82a-63a1deb783eb: lastName = Gramana
3ac87483-3e84-499c-b1f8-a498f5dd5eb6: lastName = Gramana
843b7788-f859-4b38-93f1-171dcf37ab9e: lastName = Gramana
bacd4fd7-dccc-42a5-bfbc-b37230c7b23a: lastName = Gramana
4bce2eaa-71b7-4c5d-8795-e2d8de05faad: lastName = Gramana
f4491cda-fd01-4769-a75c-80dc7df9bce4: lastName = Gramana
a38d54a5-d144-4f13-bd33-ba03fa9df1e1: lastName = Gramana
9c078679-2201-4e61-bb9c-ca8a69748780: lastName = Gramana
5b4b39f1-7363-4bcb-af89-0defb10e7a94: lastName = Gramana
6fc7808a-0c49-4f43-b511-b8308f5cf465: lastName = Gramana
22d2d482-2f80-4700-a897-01e26c6111d6: lastName = Gramana
4076ec76-595a-4a70-ac3d-3408e48bfffe: lastName = Gramana
aa7992e3-f0c4-411b-b309-a8e5eecdeca6: firstName = Greg
97c018f8-9ded-47ff-81d9-706fd13c5cb0: firstName = Greg
faca1c16-3b48-4382-b348-9975261b1780: firstName = Greg
5833ba65-d297-41ad-b077-f6d14ef87e6d: firstName = Greg
b3ea0a65-95fc-46d1-99b9-f1fa01c6e5bc: firstName = Greg
3997d012-19b9-4ec9-b178-f8904a337ea6: firstName = Greg
fb7c1983-b65e-4d1b-8fbe-98c1b4352ff8: firstName = Greg
1a104d92-5e52-40fd-bef0-9b8faf5d5aa7: firstName = Greg
201af5be-9472-45cc-869b-42292e78c6db: firstName = Greg
a08e9b9b-9c94-4d83-bdab-39fcd4004bdb: firstName = Greg
8e3d44e2-1f82-4d4b-a897-35c851e71156: firstName = Greg
af6126a7-cd1a-438c-912f-c5995430d221: firstName = Greg
3da239ea-2adc-4045-85e7-7d5f41f4f391: firstName = Greg
8606bb56-94a3-4737-8f8b-e89308b39eb6: firstName = Greg
91813d0a-631e-444d-ba76-d44c3c9c0bac: firstName = Greg
922215ac-8064-419c-b24d-492340e5e3f4: firstName = Greg
1add133a-2fa3-4354-841d-ac353606eba6: firstName = Greg
26269eec-b973-43e6-aae1-347608a74f77: firstName = Greg
155bce9b-c986-404a-8a89-a9f2c7cdbb96: firstName = Greg
16737868-5571-49d3-8846-4e9fe5992980: firstName = Greg
bbaff312-e64e-4142-bc4f-fe5b1b435408: firstName = Greg
fc3c35c7-c66b-4766-8ea0-ec9628172ef6: firstName = Greg
4099ecbe-c541-4878-b701-a6ef5aef84f9: firstName = Greg
fff6c41b-38a0-417b-a83b-8352cd95c038: firstName = Greg
05ea72c0-eaef-4925-9356-ac4d3e5752cb: firstName = Greg
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment