示例#1
0
        /// <summary>
        /// Append string to an existing string.
        /// </summary>
        public override void RunExample(AerospikeClient client, Arguments args)
        {
            Key key = new Key(args.ns, args.set, "appendkey");
            string binName = args.GetBinName("appendbin");

            // Delete record if it already exists.
            client.Delete(args.writePolicy, key);

            Bin bin = new Bin(binName, "Hello");
            console.Info("Initial append will create record.  Initial value is " + bin.value + '.');
            client.Append(args.writePolicy, key, bin);

            bin = new Bin(binName, " World");
            console.Info("Append \"" + bin.value + "\" to existing record.");
            client.Append(args.writePolicy, key, bin);

            Record record = client.Get(args.policy, key, bin.name);

            if (record == null)
            {
                throw new Exception(string.Format("Failed to get: namespace={0} set={1} key={2}",
                    key.ns, key.setName, key.userKey));
            }

            object received = record.GetValue(bin.name);
            string expected = "Hello World";

            if (received.Equals(expected))
            {
                console.Info("Append successful: namespace={0} set={1} key={2} bin={3} value={4}",
                    key.ns, key.setName, key.userKey, bin.name, received);
            }
            else
            {
                console.Error("Append mismatch: Expected {0}. Received {1}.", expected, received);
            }
        }